我希望有我的Spring MVC應用程序映射到以下擴展名是*的HTML jsp和* .action的控制器。Spring MVC的3.0映射擴展
這是爲登錄頁:
@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,但我有一個POST請求對/login.action
我越來越
HTTP狀態404個問題 - /login.action
爲什麼我的* .action映射不起作用?
我可以映射兩種不同的擴展名爲* html和* .action?
@gouki可能是正確的在動作的URL可以是不正確的......但作爲一個旁白:你知道嗎,你可能只是映射'actionSignup'爲「/login.html」作爲POST。該方法是不同的,你不必有一個不同的網址。 – 2011-04-28 09:23:48