Struts2封装数据的操作

来源:互联网 发布:最优化方法张薇答案 编辑:程序博客网 时间:2024/04/29 08:44

*在Action类中的传统封装方式:

//获取表单中的数据HttpServletRequest request = ServletActionContext.getRequest();String username = request.getParameter("username");String password = request.getParameter("password")//封装到实体类user对象中User user = new User();user.setUsername(username);user.setPassword(password);

传统方式的缺点:当表单中的数据太多时,传统封装方式的效率是比较低的,代码量也会变得非常大。所以一般不采用这种方式封装方式。

下面我们来看一些比较常用的封装方式:

*属性封装:

1、把表单提交的数据封装到Action类的属性里。

//Action类的代码public class DataResultAction extends ActionSupport{//成员属性private String username;private String password;        //set和get方法       public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute(){System.out.println(username+":::"+password);return NONE;}}
注意:成员变量名称必须和表单输入项的name属性值相同,否则底层就会匹配不到。

2、form表单的具体实现:

<!-- data4Result.action为struts.xml文件中action标签上的name值 --><form action="${pageContext.request.contextPath }/data4Result.action" method="post">username:<input type="text" name="username"/>password:<input type="password" name="password"/><br/><input type="submit" value="提交"/></form>

属性封装是将表单中的数据封装到了Action类的属性中,并没有将数据封装到对象中,所以需要在特定的场合下使用。(当然属性封装也是可以实现对对象的封装的,但是运用的不多,有兴趣的朋友可以了解一下)。

*模型驱动封装(这种封装方法是最常用的)

理解:模型驱动封装是直接将表单中的提交的数据封装到实体类对象中。

具体实现:

1、让Action类实现接口ModelDriven

2、实现接口里面的getModel方法

3、在Action类中成员位置建立实体类对象

Action类代码如下:

public class Data3ResultAction extends ActionSupport implements ModelDriven<User>{//创建实体类//确保表单属性name值要和实体类属性一样,因为底层是通过这个匹配的private User user = new User();        //将user对象放入到request中,从而跳转到“user”对应的页面上。       public String execute(){HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("user", user);return "user";}//封装实体类的方法。@Overridepublic User getModel() {// TODO Auto-generated method stubreturn user;}}
而至于form表单中的代码跟属性封装中的form表单中代码一样,就不再赘述了。

模型驱动封装是在struts表单封装中应用的最为广泛的一种封装方式,所以我们一定要掌握这种方式。

(这篇博客与上一篇的structs2的核心配置文件的执行流程分析有一定关联,有不清楚的地方可以浏览此地址:点击打开链接)






0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微博登录直播间帐号被锁定怎么办 硫酸不小心弄到皮肤上怎么办 小米平板进水了开不了机怎么办 U盘被弹出后再插没有显示怎么办 视频从U盘传下来不能播放怎么办 微博账号忘了登录名怎么办 迅雷应版权方要求无法下载怎么办? 微信账号忘记密码上面有钱怎么办 蘑菇街账号忘记了里面有钱怎么办 手机注册的百度云帐号换号怎么办 网易云音乐sd卡写入失败怎么办? 玩客云涌u盘满了怎么办 手机安装杜比音效失败死机该怎么办 网易云音乐下载额度用完了怎么办 苹果手机付费app连续扣费怎么办 oppoO粉卡的流量用没了怎么办 qq邮箱里的文件过期了怎么办 163邮箱里的文件过期了怎么办 做人事的给员工漏交社保了怎么办 公司漏交了员工一个月的社保怎么办 小米4c能充电不能开机怎么办 小米手机关机开不开机该怎么办 小米5s关机开不开机怎么办 老板跑路了员工社保还挂着怎么办 红米5连wifi很慢怎么办 电脑百度网盘下载速度慢怎么办 新手机与旧手机同步了怎么办 百度网盘2t满了怎么办 魅族手机相册的密码忘了怎么办 手机百度网盘本地空间不足怎么办 百度网盘保存视频内存不够怎么办 别人的百度网盘链接打不开怎么办 百度网盘视频插件升级失败怎么办 退苹果id重新登陆照片没了怎么办 苹果升级后照片效果没了怎么办 360云盘个人云盘停止服务怎么办 小米手机账号掉了手机卡没了怎么办 百度网盘下载后不能注册怎么办 微信发出的文件无法撤回怎么办 微信群发错消息无法撤回怎么办 百度网盘登录要验证码怎么办