- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2中的action.
Action的数据
4.3.1??数据来源
在helloworld示例里面,在运行Action的execute方法的时候,你会神奇般的发现,Action的属性是有值的,而这正是Action进行请求处理所需要的数据。那么,这些数据从何而来呢?
?????? 很明显,这些数据就是你在登录页面填写的数据,换句话说,这些数据来源于用户请求对象,也就是request对象。
?????? 可是,Struts2怎么知道,页面上的值如何和Action的属性进行对应呢?
?????? 这就涉及到如何把页面的数据和Action进行对应的问题了,接下来就来讨论页面的数据和Action的三种基本对应方式。
4.3.2??基本的数据对应方式
在Struts2中,页面的数据和Action有两种基本对应方式,分别是:属性驱动(FieldDriven)和模型驱动(ModelDriven)。
属性驱动又有两种情况:一种是基本数据类型的属性对应;另外一种是JavaBean风格的属性对应。为了区分它们,我们约定称呼如下:称呼“基本数据类型的属性对应”为属性驱动,而“JavaBean风格的属性对应”为直接使用域对象。
下面就分别来看看它们都什么意思,都如何实现。
1:属性驱动FieldDriven(基本数据类型的属性对应)
基本数据类型的属性对应,就是web页面上要提交的html控件的name属性,和Action的属性或者与属性相应的getter/setter相对应,这种做法就是基本数据类型的属性对应的属性驱动。
事实上,我们已经使用过这种方式了,前面HelloWorld示例,就是采用的这种方式来把值对应到Action中的。
比如在登录页面上,我们是这么写的:
?
java代码:
查看复制到剪贴板打印
form?action=/helloworld/helloworldAction.action?method=post??
????input?type=hidden?name=submitFlag?value=login/??
????账号:input?type=text?name=accountbr??
????密码:input?type=password?name=passwordbr??
????input?type=submit?value=提交??
/form??
在Action中是这么写的:
?
java代码:
查看复制到剪贴板打印
public?class?HelloWorldAction?extends?ActionSupport?{??
????private?String?account;??
????private?String?password;??
????private?String?submitFlag;??
????public?String?getAccount()?{??
????????return?account;??
????}??
????public?void?setAccount(String?account)?{??
????????this.account?=?account;??
????}??
????public?String?getPassword()?{??
????????return?password;??
????}??
????public?void?setPassword(String?password)?{??
????????this.password?=?password;??
????}??
????public?String?getSubmitFlag()?{??
????????return?submitFlag;??
????}??
????public?void?setSubmitFlag(String?submitFlag)?{??
????????this.submitFlag?=?submitFlag;??
????}??
????//其他部分暂时省略掉,好让大家看清楚数据的对应关系??
}??
你会发现,在页面上input的name属性,和Action的属性是同一个名称,这样一来,当页面提交的时候,Struts2会自动从request对象里面把数据取出来,然后按照名称进行对应,自动设置到Action的属性里面去。
有些朋友可能会说,Action的属性都是private的呀,按道理外部是无法访问的,正是因为如此,才为每个私有的属性提供了getter/setter方法,来让外部访问。
这也意味着,如果你不想为每个属性提供getter/setter方法,觉得很累赘,有一个简单的方式,那就是把属性的可访问权限设置成public的就可以了。但在Java开发中,不是很建议直接开放属性
您可能关注的文档
最近下载
- 灯盏生脉胶囊配合康复训练对脑梗死患者肢体功能影响的临床观察.pdf VIP
- (高清版)-B-T 19973.1-2023 医疗保健产品灭菌 微生物学方法 第1部分:产品上微生物总数的确定.pdf VIP
- 西门子PLC与配方功能.pptx VIP
- 高中毕业生登记表(完整A4版).pdf VIP
- XX年春运驾驶员安全培训试题(有答案) .pdf VIP
- 2023年同等学力申硕全国统考计算机科学与技术真题与答案.pdf VIP
- 供应商管理:供应商行为准则的内容.doc VIP
- 机械设备行业矿山机械深度报告:千亿美元高端赛道,中国龙头迈向全球.docx
- 《黑水》完整中英文对照剧本.doc
- TOSHIBA东芝复合机e-STUDI02006产品说明书.pdf
文档评论(0)