【发布时间】:2011-08-14 11:01:09
【问题描述】:
我想让我的 Spring MVC 应用程序映射到以下扩展名 *html 用于 jsp 和 *.action 用于控制器。
这是登录页面:
@RequestMapping(value="/login.html", method=RequestMethod.GET)
public ModelAndView login(){
ModelAndView mv = new ModelAndView("login/login");
//omitted
return mv;
}
这是行动:
@RequestMapping(value="/login.action", method=RequestMethod.POST)
public ModelAndView actionSignUp(@Valid User user){
//omitted
return mv;
}
而jsp很简单:
<form:form method="POST" action="/login.action" commandName="user" >
<form:input path="userName" id="userName" /><br />
<form:input path="password" id="password"/><br />
<input id ="login" type="submit" value="Login"></input>
</form:form>
我的 web.xml 如下:
<display-name>SpringMVC</display-name>
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
获取 /login.html 没有问题,但是 /login.action 上的 POST 请求有问题
我来了
HTTP 状态 404 - /login.action
为什么我的 *.action 映射不起作用?
我可以映射两个不同的扩展名 *html 和 *.action 吗?
【问题讨论】:
-
@gouki 可能是正确的,因为操作 url 可能不正确......但顺便说一句:你知道你可以将
actionSignup映射到 '/login.html' 作为 POST .方法不同,你不必有不同的 url。
标签: spring spring-mvc mapping