知识大全 struts.xml常用配置解析

Posted

篇首语:没有比知识更好的朋友,没有比病魔更坏的敌人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 struts.xml常用配置解析相关的知识,希望对你有一定的参考价值。

Struts2教程3:struts.xml常用配置解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  使用<include>标签重用配置文件

  在Struts 中提供了一个默认的struts xml文件 但如果package action interceptors等配置比较多时 都放到一个struts xml文件不太容易维护 因此 就需要将struts xml文件分成多个配置文件 然后在struts xml文件中使用<include>标签引用这些配置文件 这样做的优点如下

  结构更清晰 更容易维护配置信息

  配置文件可以复用 如果在多个Web程序中都使用类似或相同的配置文件 那么可以使用<include>标签来引用这些配置文件 这样可以减少工作量

  假设有一个配置文件 文件名为newstruts xml 代码如下

   <?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC //ApacheSofareFoundation//DTDStrutsConfiguration //EN dtd ><struts><packagename= demo extends= struts default ><actionname= submit  class= action MoreSubmitAction ><resultname= save >/result jsp</result><resultname= print >/result jsp</result></action></package></struts>

  则struts xml引用newstruts xml文件的代码如下

  

  <?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC //ApacheSofareFoundation//DTDStrutsConfiguration //EN dtd ><struts><includefile= newstruts xml /><packagename= test extends= struts default >……</package></struts>

  大家要注意一下 用<include>引用的xml文件也必须是完成的struts 的配置 实际上<include>在引用时是单独解析的xml文件 而不是将被引用的文件插入到struts xml文件中

  action的别名

  在默认情况下 Struts 会调用动作类的execute方法 但有些时候 我们需要在一个动作类中处理不同的动作 也就是用户请求不同的动作时 执行动作类中的不同的方法 为了达到这个目的 可以在<action>标签中通过method方法指定要指行的动作类的方法名 并且需要为不同的动作起不同的名子(也称为别名) 如下面代码所示

  

  <?xmlversion= encoding= UTF ?><!DOCTYPEstrutsPUBLIC  //ApacheSofareFoundation//DTDStrutsConfiguration //EN   dtd ><struts><packagename= demo extends= struts default ><actionname= test  class= action MyAction >……</action><actionname= my  class= action MyAction method= my >……</action></package></struts>

  上面代码的两个动作的class属性都指向同一个类 name为这个类起了两个动作别名 test和my 在动作my中 使用了method属性指定要要运行的方法名为my

  在MyAction类中必须要有my方法 代码如下

  

  packageaction;import opensymphony xwork ActionSupport;publicclassMyActionextendsActionSupport……publicStringexecute()throwsException//处理test动作的代码publicStringmy()throwsException //处理my动作的代码……

  除了在struts xml中配置别名 还可以通过请求参数来描述指定动作(并不需要在struts xml中配置) 请求参数的格式如下

  //localhost /contextPath/actionName!method action

  关于通过请求指定动作的详细内容 请参阅笔者写的《Struts 教程 处理一个form多个submit》

  为action指定参数

  在struts 中还可以为action指定一个或多个参数 大家还记着struts x是如何设置的action参数不? 在struts x中可以使用<action>标签的parameter属性为其指定一个action参数 如果要指定多个 就只能通过逗号( )或其他的分隔符将不同的参数隔开 而在struts 中可以通过<param>标签指定任意多个参数 代码如下

  

  <actionname= submit  class= action MyAction ><paramname= param >value </param><paramname= param >value </param><resultname= save >/result jsp</result> ……</action>

  当然 在action中读这些参数也非常简单 只需要象获取请求参数一样在action类中定义相应的setter方法即可(一般不用定义getter方法) 如下面的代码将读取param 和param 参数的值

   packageaction;import opensymphony xwork ActionSupport;publicclassMyActionextendsActionSupportprivateStringparam ;privateStringparam ;publicStringexecute()throwsExceptionSystem out println(param +param );publicvoidsetParam (Stringparam )this param =param ;publicvoidsetParam (Stringparam )this param =param ;……

  当struts 在调用execute之前 param 和param 的值就已经是相应参数的值了 因此 在execute方法中可以直接使用param 和param

  选择result类型

  在默认时 标签的type属性值是 dispatcher (实际上就是转发 forward) 开发人员可以根据自己的需要指定不同的类型 如redirect stream等 如下面代码所示

  

  <result name= save type= redirect >  /result jsp</result>

  这此result type可以在struts core jar包或struts 源代码中的struts default xml文件中找到 在这个文件中找到<result types>标签 所有的result type都在里面定义了 代码如下

  

  <result types> <result typename= chain class= opensymphony xwork ActionChainResult /> <result typename= dispatcher class= apache struts dispatcher ServletDispatcherResult default= true /> <result typename= freemarker class= apache struts views freemarker FreemarkerResult /> <result typename= header class= apache struts dispatcher HttpHeaderResult /> <result typename= redirect class= apache struts dispatcher ServletRedirectResult /> <result typename= redirectAction class= apache struts dispatcher ServletActionRedirectResult /> <result typename= stream class= apache struts dispatcher StreamResult /> <result typename= velocity class= apache struts dispatcher VelocityResult /> <result typename= xslt class= apache struts views xslt XSLTResult /> <result typename= plainText class= apache struts dispatcher PlainTextResult /> <! DeprecatednameformscheduledforremovalinStruts ThecamelCaseversionsarepreferred Seeww > <result typename= redirect action class= apache struts dispatcher ServletActionRedirectResult /> <result typename= plaintext class= apache struts dispatcher PlainTextResult /></result types>

  全局result

  有很多时候一个<result>初很多<action>使用 这时可以使用<global results>标签来定义全局的<result> 代码如下

  

  <struts><packagename= demo extends= struts default ><global results><resultname= print >/result jsp</result></global results><actionname= submit class= action MoreSubmitAction > ……</action><actionname= my class= action MoreSubmitAction method= my >……</action></package></struts>

cha138/Article/program/Java/ky/201311/27860

相关参考

知识大全 教你如何配置Struts2 web.xml文件

教你如何配置Struts2web.xml文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  St

知识大全 配置DNS解析SCAN VIP

Oracle11gR2RAC:配置DNS解析SCANVIP  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 解析wamp5下虚拟机配置文档

  Wamp下虚拟机配置分为三个步骤实例如下修改Hosts文件C:WINDOWSsystemdriversetcHostsdztest  编辑wampbinapacheApacheconfextra文

知识大全 解析php5配置使用pdo

  检查php扩展库中是否存在php_pdodll(当调用MsSQL同时还需要php_pdo_mssqldll当调用MySQL同时还需要php_pdo_mysqldll)  打开phpini配置文件加

知识大全 解析Java中如何获取Spring中配置的bean

解析Java中如何获取Spring中配置的bean  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本

知识大全 log4net配置文件解析

  <lognet>  <root>  <levelvalue=ALL/>  <appenderrefref=rollingFile/>  </r

知识大全 spring事物配置示例

  以前项目中经常用spring事务处理还没有亲自配置过惭愧现在马上上路.  首先在spring容器中配置transactionManager这个有好多实现这里以HibernateTransactio

知识大全 HTML Parser学习 整理常用的解析代码

HTMLParser学习整理常用的解析代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  获取指

知识大全 OracleRAC常用管理命令

OracleRAC常用管理命令  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  可以配置一些Ora

市场是通过__机制配置资源

市场是通过_____机制配置资源。A、市场B、竞争C、价格D、调控答案:C解析:价格机制是市场机制的核心机制,市场是通过价格-枳制配置资源。故选C。