Расширение картографирования Spring MVC 3.0 - PullRequest
5 голосов
/ 28 апреля 2011

Я бы хотел, чтобы мое приложение 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, но у меня проблема с запросом POST на /login.action

Я получаю

HTTP-статус 404 - /login.action

Почему мое отображение для * .action не работает?

Могу ли я отобразить два разных расширения * html и * .action?

1 Ответ

1 голос
/ 28 апреля 2011

Метод действия в вашей форме был определен как action="/login.action". / Делает URL относительно вашего домена. Вы должны заметить, что форма размещена на URL, похожем на http://localhost:8080/login.action, который должен быть http://localhost:8080/[context root] / [sub dir, если определено] /login.action

Я считаю, что удаление '/' исправит это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...