首页 > 代码库 > struts封装客户端数据到Action
struts封装客户端数据到Action
1.在Action中定义简单数据类型的属性
给Action定义简单类型的属性,封装客户端请求的数据
简单类型:String,基本类型和对应的引用类型
只要保证客户端请求的参数名称和Action的属性名称一样。
2.在Action中定义javabean对象封装客户端数据
2.1定义实体类
public class Users { private String uname; private String upwd; private Integer type; public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpwd() { return upwd; } public void setUpwd(String upwd) { this.upwd = upwd; } public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } } |
2.2定义Action
Action中定义Javabean对象,作为属性
public class UserAction2 { /*** * 使用javabean对象作为Action的属性,封装客户端请求的数据 * * 如果Users类中存在一个属性为Score类型,Score类中存在一个属性Integer类型num * 参数名称怎么写?user.score.num(属性链),struts2框架会自动的属性链上的每一个 * javabean类型进行实例化(ognl) * **/ private Users user; public Users getUser() { return user; } public void setUser(Users user) { this.user = user; } public String userReg2() { System.out.println(user.getUname()+" === "+user.getUpwd()+" === "+user.getType()); return Action.SUCCESS; } } |
2.3注册Action
2.4定义UI页面
<!-- 使用javabean作为Action的属性 --> <form action="userAction2_userReg2.action" method="post"> <div>uname:<input type="text" name="user.uname"/></div> <div>upwd :<input type="text" name="user.upwd "/></div> <div>type : <select name="user.type"> <option value=http://www.mamicode.com/"1">管理员</option> <option value=http://www.mamicode.com/"2">用户</option> </select> </div> <div> <input type="submit" value=http://www.mamicode.com/"注册"/></div> </form> |
总结:struts2框架会自动的获得客户端请求的参数,自动的类型转化,自动的封装为需要业务对象。
3 实现接口ModelDriven
ModelDriven:接口使用ognl表达式完成对象执行的封装,而getModel方法的返回值是被默认访问的对象。
3.1定义Action
public class UserAction3 implements ModelDriven<Users> { //定义Action的属性,同时进行实例化 private Users user=new Users(); /** * 该方法会将客户端请求的参数,封装到users对象中,将users对象放入 * Action的值栈中.(ongl) * * 如果实现ModelDriven接口, * 请求参数会被默认封装带getModel方法的返回值对象中 * 当获取需要的执行的是,默认由getModel方法的返回值对象中获得 * * 好处:简化了参数的访问形式(客户端参数的命名,el表示的形式进行简化) * ***/ @Override public Users getModel() { System.out.println("---------------"+user); return user; } public String userReg3() { System.out.println(user.getUname()+" ------- "+user.getUpwd()+" ------- "+user.getType()); return Action.SUCCESS; } } |
3.2定义UI页面
<!-- 通过实现ModelDirven接口,封装客户端数据 --> <form action="userAction3_userReg3.action" method="post"> <div>uname:<input type="text" name="uname"/></div> <div>upwd :<input type="text" name="upwd"/></div> <div>type : <select name="type"> <option value=http://www.mamicode.com/"1">管理员</option> <option value=http://www.mamicode.com/"2">用户</option> </select> </div> <div> <input type="submit" value=http://www.mamicode.com/"注册"/></div> </form> |
struts封装客户端数据到Action