知识大全 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相关参考
教你如何配置Struts2web.xml文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! St
Oracle11gR2RAC:配置DNS解析SCANVIP 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Wamp下虚拟机配置分为三个步骤实例如下修改Hosts文件C:WINDOWSsystemdriversetcHostsdztest 编辑wampbinapacheApacheconfextra文
检查php扩展库中是否存在php_pdodll(当调用MsSQL同时还需要php_pdo_mssqldll当调用MySQL同时还需要php_pdo_mysqldll) 打开phpini配置文件加
知识大全 解析Java中如何获取Spring中配置的bean
解析Java中如何获取Spring中配置的bean 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本
<lognet> <root> <levelvalue=ALL/> <appenderrefref=rollingFile/> </r
以前项目中经常用spring事务处理还没有亲自配置过惭愧现在马上上路. 首先在spring容器中配置transactionManager这个有好多实现这里以HibernateTransactio
HTMLParser学习整理常用的解析代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 获取指
OracleRAC常用管理命令 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 可以配置一些Ora
市场是通过_____机制配置资源。A、市场B、竞争C、价格D、调控答案:C解析:价格机制是市场机制的核心机制,市场是通过价格-枳制配置资源。故选C。