2014-11-13 2 views
0

Я работаю над приложением Spring-MVC. Я хочу реализовать функцию забытого пароля. Для этого я использую секретный метод вопроса. Я создал страницу JSP, где я получаю значения, такие как имя пользователя, secretanswer, а затем проверяю, существуют ли значения, а затем сохраните новый пароль, который пользователь дал. У меня проблема с страницей JSP, когда я нажимаю кнопку «Отправить», она показывает мне URL-адрес мусора. Я считаю, что это небольшая ошибка, я не вижу. Пожалуйста, дайте мне знать, что происходит не так.Выполнение Забыл пароль весной, давая мусор URL

Apache Tomcat URL ошибки:

HTTP Status 404 - /id=0,%20username=null,%20password=null 

функция управления для смены пароля:

@RequestMapping(value = "/forgotpassword") 
    public String forgotPassword(Model model){ 
     model.addAttribute("person",new Person()); 
     return "forgotpassword"; 
    } 

    @RequestMapping(value = "/changepassword") 
    public String changepassword(@ModelAttribute("person") Person f,Model model){ 
     System.out.println("Did we reach here on submit"); 
     personService.checkAuthenticitiy(f.getUsername(), f.getSecretanswer(), f.getNewpassword()); 
     model.addAttribute("person", new Person()); 
     return "redirect:/forgotpassword"; 
    } 

JSP-страницы:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
<head> 
    <title>Forgot Passsword page</title> 
</head> 
<body> 

<td><a href="<c:url value='/' />" >Go Home</a></td> 

<h1> 
    Change password 
</h1> 

<c:url var="addAction" value="/changepassword" ></c:url> 
<form:form action="${person}" commandName="person"> 
<table> 
     <tr> 
      <td> 
       <form:label path="username"> 
        <spring:message text="username"/> 
       </form:label> 
      </td> 
      <td> 
       <form:input path="username" /> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <form:label path="secretquestion" > 
        <spring:message text="secretquestion"/> 
       </form:label> 
      </td> 
      <td> 
       <form:input path="secretquestion"/> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <form:label path="secretanswer" > 
        <spring:message text="secretanswer"/> 
       </form:label> 
      </td> 
      <td> 
       <form:input path="secretanswer"/> 
      </td> 
     </tr> 
    <tr> 
     <td> 
      <form:label path="newpassword" > 
       <spring:message text="newpassword"/> 
      </form:label> 
     </td> 
     <td> 
      <form:input path="newpassword"/> 
     </td> 
    </tr> 
     <tr> 
      <td> 
       <input name="submit" type="submit" value="Submit" /> 
      </td> 
     </tr> 
     </table> 
    </form:form> 
</body> 
</html> 

Person модель:

@Entity 
@Table(name="person") 
public class Person implements UserDetails{ 

@Column(name = "username") 
    private String username; 


    @Column(name = "password") 
    private String password; 

    @Column(name = "secretquestion") 
    private String secretquestion; 

    @Column(name = "secretanswer") 
    private String secretanswer; 

    @Transient 
    private String newpassword; 
    //Getters and setters for all. 

} 

ответ

1
<c:url var="addAction" value="/changepassword" ></c:url> 
<form:form action="${person}" commandName="person"> 

должен быть

<c:url var="addAction" value="/changepassword" ></c:url> 
<form:form action="${addAction}" commandName="person"> 

человек не ваше действие

+0

Спасибо Pravin, я постараюсь, что завтра, как я не нахожусь в офисе больше. Вы уверены, что это единственная ошибка? –

+0

Ya все остальное выглядит идеально для меня. Нет никакой requestMapping для $ {person}, поэтому она вызывает такую ​​ошибку – Pravin

+0

Конечно. Спасибо ... если это сработает, я помету ваш answer.ty. –