Jodd是一個(gè)開源項(xiàng)目,http://jodd.sourceforge.net,有一個(gè)好用的jsp標(biāo)簽,可以大大簡(jiǎn)化有表單輸入的controller。
使用Jodd的優(yōu)點(diǎn):
1. 簡(jiǎn)化和統(tǒng)一controller,拋棄extends SimpleFormController,統(tǒng)一使用implements Controller的方式。
2. 簡(jiǎn)化JSP頁(yè)面的bind,不需要一個(gè)字段一個(gè)字段的綁定。
3. 對(duì)bean沒有任何要求,可以使用任意的bean做為formBean.
使用方法簡(jiǎn)介:
1.把jodd.jar放到web-inf->lib下,在web.xml里聲名標(biāo)簽:
<taglib-uri>jodd</taglib-uri>
<taglib-location>/WEB-INF/lib/jodd.jar</taglib-location>
</taglib>
2.任意的一個(gè)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頁(yè)面使用jodd tag:,比如對(duì)應(yīng)用戶登錄頁(yè)面的
<%@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中對(duì)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
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;
}
}
需要注意的地方:
表單中對(duì)應(yīng)的名字name和javaBean里對(duì)應(yīng)的屬性名要相同。
<input type="text" name="userName"
class="input"
size="20">
public class User {
private String userName;
.......
http://m.tkk7.com/calvin/archive/2005/08/24/10914.html