2016-02-09 5 views
0

Когда я отправляю форму, она обрабатывает и переходит в класс контроллера. но в RequestMapping я не получаю значение. Когда я отправляю форму, она обрабатывается и переходит в класс контроллера. но в RequestMapping я не получаю значение. Когда я отправляю форму, она обрабатывается и переходит в класс контроллера. но в RequestMapping я не получаю значение.Почему RequestMapping весной получает нулевое значение

index.jsp

<form method="POSt" action="login.htm"> 
      Email : <input type="text" path="txtemail"/> 
      Password : <input type="text" path="txtpwd"/><br> 
      <input type="submit" value="Save"/> 
      </form> 

controller.java

@Controller 
public class controller extends model{ 
@RequestMapping(value="/login",method = RequestMethod.POST) 
public String login(HttpServletRequest request, 
     @RequestParam(value="txtemail", required=false)String email, 
     @RequestParam(value="txtpwd", required=false) String password){ 

    controller_save obj=new controller_save(); 
    obj.setEmail(email); 
    obj.setPassword(password); 
    return "index"; 
} 
} 

web.xml

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
    </init-param> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>redirect.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 
+0

'input' элемент не имеет' path' свойство. Ваш элемент получит случайное id/name и не будет соответствовать '@ RequestParam', поэтому он всегда будет« null ». –

+0

опубликовать ваш web.xml – Abdelhak

+0

@ M.Deinum не работает .. пытался .. помните, что это весна. не простой jsp. –

ответ

1

Попробуйте заме е это:

<form method="POSt" action="login.htm"> 

To:

<form method="POST" action="/login"> 

С помощью login вместо login.htm, потому что у вас есть value="/login":

@RequestMapping(value="/login",method = RequestMethod.POST) 

И пишу эти строки, как это:

Email : <input type="text" name="txtemail" path="txtemail"/> 
    Password : <input type="text" name="txtpwd" path="txtpwd"/><br> 

А:

@RequestParam(value="txtemail", required=false) String txtemail, 
    @RequestParam(value="txtpwd", required=false) String txtpwd){ 
+0

По умолчанию '/ login' также вводит отображение для'/login. * '(Если оно не отключено вручную, но я очень сомневаюсь в этом). –

+0

bro ,, я отлаживал свой код. это касается контроллера.java. но получает значение null в 'obj.setEmail (email)' –

+0

@PapanDebnath см. обновленный ответ – Abdelhak

0

Использование Войти вместо login.htm или/логин в форме <form method="POST" action="login">

Смежные вопросы