formbackingobject不工作的弹簧为jsp

时间:2013-12-31 19:13:21

标签: spring java-ee spring-mvc

当我调用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>

1 个答案:

答案 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>