1. 简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。
2. 简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。
3. 对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。
使用方法简介:
1 把 jodd.jar 放到 web-inf->lib 下,在 web.xml 里声名标签:
< taglib > < taglib-uri > jodd </ taglib-uri > < taglib-location > /WEB-INF/lib/jodd.jar </ taglib-location > </ taglib >
2 任意的一个 javaBean做为FormBean
public class User { private String userName; private String password; public String getPassword() { return password; } public void setPassword(String pwd) { this .password = pwd; } public String getUserName() { return userName; } public void setUserName(String username) { this .userName = username; } }
3 在 JSP 页面使用 jodd tag:, 比如对应用户登录页面的
<% @page import = " caike.User " %> <% @taglib uri = " jodd " prefix = " jodd " %> < jodd:form beans ="user" scopes ="session" > < form action ="my.htm" method ="post" > < table width ="300" border ="0" cellspacing ="0" cellpadding ="0" align ="center" class ="white" > < tr > < td height ="32" align ="right" width ="107" > 用户名: </ td > < td height ="32" width ="193" >< input type ="text" name ="userName" class ="input" size ="20" > </ td > </ tr > < tr > < td height ="33" align ="right" width ="107" > 密码: </ td > < td height ="33" width ="193" >< input type ="password" name ="password" class ="input" size ="21" ></ td > </ tr > < tr > < td height ="69" align ="center" colspan ="2" > < input type ="submit" name ="Submit" value ="登录" > </ tr > </ table > </ form > </ jodd:form >
4 Dispatch-servelt.xml 中对 controller 的配置
<bean id="myController" class="caike.MyController"> </bean> 不再需要这种方式: <!-- <bean id="myController" class="caike.MyFormController"> <property name="commandClass" value="caike" /> <property name="formView" value="userForm" /> </bean> -->
5 在 controller 中取出 user
package caike; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jodd.bean.BeanUtil; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class MyController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { User user = new User(); BeanUtil.load(user, request); System.out.println( " 用户名: " + user.getUserName() + "密码:" + user.getPassword()); return null ; } }
需要注意的地方:
表单中对应的名字 name 和 javaBean 里对应的属性名要相同。
<input type="text" name="userName" class="input" size="20">
public class User { private String userName; .......