struts获得参数(属性,对象,模型驱动)
0.
strutsMVC
Action生命周期
1.每次请求到来时,都会创建一个新的Action实例
2.Action是线程安全的.可以使用成员变量接收参数
1.属性驱动方式
提供属性的setter方法:
这里需要补充的是对于boolean类型的映射,我们用eclipse生成的get、set方法是isXXX,例如:
private boolean displayPerson; public boolean isDisplayPerson() { return displayPerson; } public void setDisplayPerson(boolean displayPerson) { this.displayPerson = displayPerson; }
我们需要将is改为get,如下:
private boolean displayPerson; public boolean getDisplayPerson() { return displayPerson; } public void setDisplayPerson(boolean displayPerson) { this.displayPerson = displayPerson; }
2.对象驱动
提供属性的getter方法:
3.模型驱动
模型驱动是使用javaBean对象来封装请求参数,在整个MVC流程中可以直接使用这个对象。在发送请求后Struts将各个请求参数(javab的属性)封装到一个JavaBean对象中,Action接收这个实例对象并用该对象进行相关处理返回处理结果。
Action需要实现ModelDriven接口,创建一个对象实例,在getModel返回该对象。界面中name直接命名为属性名字,不用加对象名字。(对象实例不用get,set)
例如:
1 | Haulinfo .java |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | package cn.xm.exam.bean.haul; import java.util.Date; public class Haulinfo { private String bigid; // 大修ID private String bigname; // 大修名称 private String bigdescription; // 大修描述 private Date bigcreatedate; // 大修创建时间 private Date bigbegindate; // 大修开始时间 private Date bigenddate; // 大修结束时间 private String bigstatus; // 大修状态 public String getBigid() { return bigid; } public void setBigid(String bigid) { this .bigid = bigid == null ? null : bigid.trim(); } public String getBigname() { return bigname; } public void setBigname(String bigname) { this .bigname = bigname == null ? null : bigname.trim(); } public String getBigdescription() { return bigdescription; } public void setBigdescription(String bigdescription) { this .bigdescription = bigdescription == null ? null : bigdescription.trim(); } public Date getBigcreatedate() { return bigcreatedate; } public void setBigcreatedate(Date bigcreatedate) { this .bigcreatedate = bigcreatedate; } public Date getBigbegindate() { return bigbegindate; } public void setBigbegindate(Date bigbegindate) { this .bigbegindate = bigbegindate; } public Date getBigenddate() { return bigenddate; } public void setBigenddate(Date bigenddate) { this .bigenddate = bigenddate; } public String getBigstatus() { return bigstatus; } public void setBigstatus(String bigstatus) { this .bigstatus = bigstatus == null ? null : bigstatus.trim(); } } |
Action:
测试:
结果:
【当你用心写完每一篇博客之后,你会发现它比你用代码实现功能更有成就感!】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了