Struts2Action从表单取值并且存到Web元素中(session).docVIP

Struts2Action从表单取值并且存到Web元素中(session).doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Struts2Action从表单取值并且存到Web元素中(session)

在struts2中,Action不同于struts1.x中的Action。在struts2中Action并不需要继承任何控制器类型或实现相应接口。比如struts1.x中的Action需要继承Action或者DispatcherAction。 同时struts2中的Action并不需要借助于像struts1.x中的ActionForm获取表单的数据。可以直接通过与表单元素相同名称的数据成员(需要存在符合命名规范的set和get方法)获取页面表单数据。 虽然struts2中的Action原则上不用继承任何类型。但是一般需要实现com.opensymphony.xwork2.Action接口或者继承com.opensymphony.xwork2.ActionSupport类型,然后重写execute方法。通常更愿意去继承ActionSupport类型,这样我们可以在我们的控制器中增加更多的功能。因为ActionSupport本身不但实现了Action接口,而且实现了其他的几个接口,让我们的控制器的功能更加强大,例如: com.opensymphony.xwork2.Validateable:提供了validate方法,可以对action中的数据进行校验 com.opensymphony.xwork2.ValidationAware:提供了addFieldError方法,可以存取action级别或者字段级别的错误消息 com.opensymphony.xwork2.TextProvider:提供了获取本地化信息文本的方法getText com.opensymphony.xwork2.LocaleProvider:提供了getLocale方法,用于获取本地信息 从以上我们可以看到,继承ActionSupport,可以完成更多的工作。 例如上面的例子,例如我们需要判断输入文本框的内容,输入的内容长度必须在6-10之间。那么我们可以增加校验工作,利用validate方法。更改后的代码如下: package com.frank.action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport { ??? private String message; ??? private String username; ??? @Override ??? public String execute() throws Exception { ??????? this.message=Hello World:+this.username; ??????? return SUCCESS; ??? } ??? public String getUsername() { ??????? return username; ??? } ??? public void setUsername(String username) { ??????? this.username = username; ??? } ??? public String getMessage() { ??????? return message; ??? } ??? public void setMessage(String message) { ??????? this.message = message; ??? } ??? @Override ??? public void validate() { ??????? if(this.username.trim().length()6||this.username.trim().length()10){ ??????????? addFieldError(user.username,the length is invalid); ??????? } ??? } } 由于实现了validate方法,这样当请求一个控制器(在这里为helloWorld.action)的时候,首先执行validate方法,如果有错误信息增加到action中,那么就不继续执行Action,返回INPUT,否则就继续执行Action。在本例中,首先判断用户名称是否在合法的长度范围,如果不在增加错误信息,返回INPUT(默认返回)。 因为有错误返回INPUT,所以此Action在配置文件中应该定义INPUT转发路径 action name=helloWorld class=com.frank.action.HelloWorldAction ??????????????? result name=successdisplay.j

文档评论(0)

kkg445 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档