0

这是我的控制器方法:

@RequestMapping(value = "/login/{id}", method = RequestMethod.GET)
public String doLogin(@PathVariable long id, HttpServletRequest request, HttpServletResponse response, Model model) {

logger.info(String.format(
              Constants.LogMessages.NEW_GET_REQUEST_FROM_IP,
              request.getRemoteAddr()));

logger.info("/login/{id}");

return "login";

}

和我的 appServlet-context.xml:

    <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".html" />
</beans:bean>

我在这种方法中得到的例外是:

WARN PageNotFound - No mapping found for HTTP request with URI [/project/WEB-INF/views/login.html] in DispatcherServlet with name 'appServlet'

问题是,当我将“后缀”更改为 .jsp 并将文件名从 html 更改为 .jsp 时,它可以工作。

知道为什么吗?

编辑:

这是我的 web.xml:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring/root-context.xml</param-value>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

<servlet-name>appServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

<servlet-name>appServlet</servlet-name>

<url-pattern>/</url-pattern>

<filter-name>cors</filter-name>

<filter-class>src.com.project.context.CorsFilter</filter-class>

<filter-name>cors</filter-name>

<url-pattern>/*</url-pattern>

4

2 回答 2

1

在您的 .xml 文件中尝试更改:

<servlet-name>appServlet</servlet-name>

<url-pattern>/</url-pattern>

至:

<servlet-name>appServlet</servlet-name>

<url-pattern>*.html</url-pattern>
于 2013-08-23T20:38:50.547 回答
0

只是一个想法。可能是您的构建过程没有将 /project/WEB-INF/views/login.html 文件复制到战争中。取消战争并检查是否存在。

于 2013-08-23T18:23:56.403 回答