我是Spring的新手。
我尝试使用我放入UserForm
类的注释来验证表单。
以某种方式post方法根本不运行。
我可以在浏览器中看到POST请求,但控制器POST方法不会运行。
这是我的LoginController
班级:
@Controller
public class LoginController {
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(Map<String, Object> model) {
UserForm loginUser = new UserForm();
model.put("userForm", loginUser);
return "Login";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String doLogin(
@Valid @ModelAttribute("userForm") UserForm userForm,
BindingResult result,
Map<String, Object> model) {
if (result.hasErrors()) {
return "Login";
}
return "Home";
}
}
任何帮助指针都赞赏。
修改 这是我的表格:
<form:form action="/bookmarks/login" method="POST" commandName="userForm">
<label for="idInput">Username:</label>
<form:input type="text" path="username" placeholder="Username" />
<div><form:errors path="username" cssClass="error"/></div>
<br>
<label for="idInput">Passwors:</label>
<form:input type="password" path="password" placeholder="Password" />
<div><form:errors path="password" cssClass="error"/></div>
<br>
<button type="submit" value="login">Submit</button>
</form:form>
这是添加了security.xml
的{{1}}。这实际上解决了我的问题,但我无法完全解释原因:
login-processing-url="/j_spring_security_check"
答案 0 :(得分:3)
我找到了解决问题的方法。我刚刚在security.xml中添加了login-processing-url="/j_spring_security_check"
到form-login标签。现在POST请求是可以接受的。
编辑:
您好,
我有这个代码的另一个问题。
现在我通过POST
请求并且已经进行了验证,但是当我尝试使用正确的用户名和用户登录时密码Spring将我重定向回登录表单。 (Spring 4.0.3.RELEASE
)。