当我调用formBackingObject方法来设置默认值时,它不会在名字的输入字段中显示任何内容。
JSP和formBackingObject代码如下所示。
SimpleFormController子类java代码
protected Object formBackingObject(HttpServletRequest request)
throws Exception {
//This does not work
User u=new User();
u.setFname("Roger");
return u;
}
protected ModelAndView onSubmit(Object obj) throws Exception {
//This works when submit button is clicked,I get the user entered values
User u=(User)obj;
userService.addUser(u);
return new ModelAndView(getSuccessView(), "user", u);
}
JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" href="css/registrationcss.css">
<title>Insert title here</title>
</head>
<body>
<form method="post">
<p>
First Name <input type="text" name="fname"></input>
</p>
<p>
Last Name <input type="text" name="lname"></input>
</p>
<p>
Your E-mail <input type="text" name="email"></input>
</p>
<p>
Password <input type="password" name="password"></input>
</p>
<p>
Re-enter Your Password <input type="password" name="repassword"></input>
</p>
<p>
Gender</br> <input type="radio" name="gender" checked>Male</input> <input
type="radio" name="gender">Fe-Male</input> <input type="radio"
name="gender">Other</input>
</p>
<p>
<input type="Submit" value="Sign Up" /input>
</p>
</form>
</body>
</html>
答案 0 :(得分:1)
即使 onSubmit 方法从FORM中获取对象,除非使用form-taglib,否则无法采用其他方式。
将数据绑定到JSP需要Form-taglib。
可以在此处找到表单标签lib的reference。
将JSP修改为如下所示,解决了我的问题。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link rel="stylesheet" href="css/registrationcss.css">
<title>Insert title here</title>
</head>
<body>
<form:form method="post" commandName="user">
<p>
First Name <form:input path="fname"></form:input>
</p>
<p>
Last Name <form:input path="lname"></form:input>
</p>
<p>
Your E-mail <form:input path="email"></form:input>
</p>
<p>
Password <form:password path="password"></form:password>
</p>
<p>
Re-enter Your Password <form:password path="repassword"></form:password>
</p>
<p>
Gender<br> <form:radiobutton path="gender" label="Male"/> <form:radiobutton
path="gender" label="Fe-Male"/> <form:radiobutton
path="gender" label="Other"/>
</p>
<p>
<input type="Submit" value="Sign Up" />
</p>
</form:form>
</body>
</html>