标签:sel 实例 out action 基本类型 -- text border override
给Action定义简单类型的属性,封装客户端请求的数据
简单类型:String,基本类型和对应的引用类型
只要保证客户端请求的参数名称和Action的属性名称一样。
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; } } |
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; } } |
<!-- 使用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="1">管理员</option> <option value="2">用户</option> </select> </div> <div> <input type="submit" value="注册"/></div> </form> |
总结:struts2框架会自动的获得客户端请求的参数,自动的类型转化,自动的封装为需要业务对象。
ModelDriven:接口使用ognl表达式完成对象执行的封装,而getModel方法的返回值是被默认访问的对象。
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; } } |
<!-- 通过实现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="1">管理员</option> <option value="2">用户</option> </select> </div> <div> <input type="submit" value="注册"/></div> </form> |
标签:sel 实例 out action 基本类型 -- text border override
原文地址:http://www.cnblogs.com/guanghe/p/6058124.html