我试图在spring mvc中从jsp到控制器获取表单值,但我无法获取表单数据。
这是我的DTO(bean)
public class LoginDTO implements Serializable {
private Long id;
private String username;
private String password;
// setter and getter methods
}
和我的Jsp
<form class="form-signin" action="test" method="get" modelAttribute="userFormData">
<input type="text" class="form-control"
placeholder="Email" required autofocus>
<input type="password" class="form-control"
placeholder="Password" required>
<input class="btn btn-md btn-success btn-block"
type="submit" value="Signin">
</form>
和我的控制器
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String checkLogin(@ModelAttribute("userFormData") LoginDTO formData, BindingResult
result) {
System.out.println("Controller...");
System.out.println("=====> " + formData.getUsername());
System.out.println("=====> " + formData.getPassword());
}
答案 0 :(得分:2)
为JSP页面上的控件添加名称。
<input type="text" name="username" ...>
<input type="password" name="password" ...>
让spring知道哪个表单控件值应该转到LoginDTO
答案 1 :(得分:0)
像这样我们也可以使用springframework给我们一个表单tags.so我们也可以使用它,但在这种情况下你必须定义你的输入路径与你的类中给出的成员varibale相同。
<form:form method="post" modelAttribute="userFormData">
<form:input path="username" />
<form:input path="password" />
然后在控制器中,您可以像写下一样写出
public String checkLogin(@ModelAttribute("userFormData") LoginDTO formData, BindingResult
result)
答案 2 :(得分:0)
如果要在其他jsp页面以及控制台上获取结果,请执行以下操作:
java.lang.IllegalArgumentException: Class class hello.Person is not a valid entity class. Please check the entity mapping.