已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用include标签重用配置文件 在Struts2中提供了一个默认的struts.xml文件,但如果package、action、interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用include标签引用这些配置文件。这样做的优点如下: 结构更清晰,更容易维护配置信息。 配置文件可以复用。如果在多个Web程序中都使用类似或相同的配置文件,那么可以使用include标签来引用这些配置文件,这样可以减少工作量。 假设有一个配置文件,文件名为newstruts.xml,代码如下:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-/ApacheSoftwareFoundation/DTDStrutsConfiguration2.0/EN/dtds/struts-2.0.dtdstrutspackagename=demoextends=struts-defaultactionname=submitclass=action.MoreSubmitActionresultname=save/result.jsp/resultresultname=print/result.jsp/result/action/package/struts 则struts.xml引用newstruts.xml文件的代码如下:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-/ApacheSoftwareFoundation/DTDStrutsConfiguration2.0/EN/dtds/struts-2.0.dtdstrutsincludefile=newstruts.xml/packagename=testextends=struts-default/package/struts 大家要注意一下,用include引用的xml文件也必须是完成的struts2的配置。实际上include在引用时是单独解析的xml文件,而不是将被引用的文件插入到struts.xml文件中。 action的别名 在默认情况下,Struts2会调用动作类的execute方法。但有些时候,我们需要在一个动作类中处理不同的动作。也就是用户请求不同的动作时,执行动作类中的不同的方法。为了达到这个目的,可以在action标签中通过method方法指定要指行的动作类的方法名,并且需要为不同的动作起不同的名子(也称为别名)。如下面代码所示:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-/ApacheSoftwareFoundation/DTDStrutsConfiguration2.0/EN/dtds/struts-2.0.dtdstrutspackagename=demoextends=struts-defaultactionname=testclass=action.MyAction/actionactionname=myclass=action.MyActionmethod=my/action/package/struts 上面代码的两个动作的class属性都指向同一个类,name为这个类起了两个动作别名:test和my.在动作my中,使用了method属性指定要要运行的方法名为my. 在MyAction类中必须要有my方法,代码如下:packageaction;importcom.opensymphony.xwork2.ActionSupport;publicclassMyActionextendsActionSupportpublicStringexecute()throwsException/处理test动作的代码publicStringmy()throwsException/处理my动作的代码 除了在struts.xml中配置别名,还可以通过请求参数来描述指定动作(并不需要在struts.xml中配置)。请求参数的格式如下: http:/localhost:8080/contextPath/actionName!method.action关于通过请求指定动作的详细内容,请参阅笔者写的Struts2教程2:处理一个form多个submit。为action指定参数 在struts2中还可以为action指定一个或多个参数。大家还记着struts1.x是如何设置的action参数不? 在struts1.x中可以使用action标签的parameter属性为其指定一个action参数,如果要指定多个,就只能通过逗号(,)或其他的分隔符将不同的参数隔开。而在struts2中可以通过param标签指定任意多个参数。代码如下:actionname=submitclass=action.MyActionparamname=param1value1/paramparamname=param2value2/paramresultname=save/result.jsp/result/action 当然,在action中读这些参数也非常简单,只需要象获取请求参数一样在action类中定义相应的setter方法即可(一般不用定义getter方法)。如下面的代码将读取param1和param2参数的值:packageaction;importcom.opensymphony.xwork2.ActionSupport;publicclassMyActionextendsActionSupportprivateStringparam1;privateStringparam2;publicStringexecute()throwsExceptionSystem.out.println(param1+param2);publicvoidsetParam1(Stringparam1)this.param1=param1;publicvoidsetParam2(Stringparam2)this.param2=param2; 当struts2在调用execute之前,param1和param2的值就已经是相应参数的值了,因此,在execute方法中可以直接使用param1和param2. 选择result类型 在默认时,标签的type属性值是“dispatcher”(实际上就是转发,forward)。开发人员可以根据自己的需要指定不同的类型,如redirect、stream等。如下面代码所示:result name=savetype=redirect /result.jsp/result 这此result-type可以在struts2-core-.jar包或struts2源代码中的struts-default.xml文件中找到,在这个文件中找到result-types标签,所有的result-type都在里面定义了。代码如下:result-typesresult-typename=chainclass=com.opensymphony.xwork2.ActionChainResult/result-typename=dispatcherclass=org.apache.struts2.dispatcher.ServletDispatcherResultdefault=true/result-typename=freemarkerclass=org.apache.struts2.views.freemarker.FreemarkerResult/result-typename=httpheaderclass=org.apache.struts2.dispatcher.HttpHeaderResult/result-typename=redirectclass=org.apache.struts2.dispatcher.ServletRedirectResult/result-typename=redirectActionclass=org.apache.struts2.dispatcher.ServletActionRedirectResult/result-typename=streamclass=org.apache.struts2.dispatcher.StreamResult/result-typename=velocityclass=org.apache.struts2.dispatcher.VelocityResult/result-typename=xsltclass=org.apache.struts2.views.xslt.XSLTResult/result-typename=plainTextclass=org.apache.struts2.dispatcher.PlainTextResult/!-DeprecatednameformscheduledforremovalinStruts2.1.0.ThecamelCaseversionsarepreferred.Seeww-1707-result-typename=redirect-actionclass=org.apache.struts2.dispatcher.ServletActionRedirectResult/result-typename=plaintextclass=org.apache.struts2.dispatcher.PlainTextResult/result-types 全局result 有很多时候一个result初很多action使用,这时可以使用global-results标签来定义全局的result,代码如下:strutspackagename=demoextends=struts-defaultglobal-r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古锡林郭勒盟珠宝城老凤祥招聘26人考试笔试备考试题及答案解析
- 2026年甘肃省第二人民医院招录39人笔试考试参考试题附答案解析
- 2026浙江省温岭市第一人民医院招聘医学卫生类高学历人才31人笔试考试参考试题附答案解析
- 2025-2030中国气泡水产品创新与消费升级趋势分析报告
- 2025中国金融科技应用分析及监管环境与市场潜力评估报告
- 2025中国金融信息化市场发展动态及投资策略研究报告
- 青岛市2026年“青选计划”(北京邮电大学)考试笔试备考题库及答案解析
- 2025中国跨境电商市场现状及竞争格局与未来趋势研究报告
- 2025中国裁断机行业市场预测模型与决策支持报告
- 2025中国裁断机品牌价值评估与市场营销策略优化报告
- 糖尿病与睡眠障碍
- 网络类拓扑图
- (2024版)联通社区智家营销经理能力认证参考试题库(含答案)
- 仿真绿植合同模板
- 赠与协议书模板(2篇)
- 煤矿安全风险分级管控与隐患排查治理双重预防机制建设指南
- 浙江省温州市2023-2024学年七年级上学期语文期中考试试卷(含答案)
- MAXHUB会议平板操作说明书
- 第1章机械运动章末提升核心素养课件人教版(2024)物理八年级上册
- 邮件分拣业务外包管理服务方案
- 2024年军考英语真题历年军考真题系列
评论
0/150
提交评论