Jodd是一个开源项目,http://jodd.sourceforge.net,有一个好用的jsp标签,可以大大简化有表单输入的controller。
使用Jodd的优点:
<!--[if !supportLists]-->1. <!--[endif]-->简化和统一controller,抛弃extends SimpleFormController,统一使用implements Controller的方式。
<!--[if !supportLists]-->2. <!--[endif]-->简化JSP页面的bind,不需要一个字段一个字段的绑定。
<!--[if !supportLists]-->3. <!--[endif]-->对bean没有任何要求,可以使用任意的bean做为formBean.
使用方法简介:
<!--[if !supportLists]-->1.<!--[endif]-->把jodd.jar放到web-inf->lib下,在web.xml里声名标签:
<
taglib
>
<
taglib-uri
>
jodd
</
taglib-uri
>
<
taglib-location
>
/WEB-INF/lib/jodd.jar
</
taglib-location
>
</
taglib
>
<!--[if !supportLists]-->2.<!--[endif]-->任意的一个javaBean做为FormBean
package
caike;
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;
}
}
<!--[if !supportLists]-->3.<!--[endif]-->在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>
<!--[if !supportLists]-->4.<!--[endif]-->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>
-->
<!--[if !supportLists]-->5.<!--[endif]-->在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;
.......
参考:
http://www.blogjava.net/calvin/archive/2005/08/24/10914.html