首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

struts2 (2)

2013-02-28 
struts2 (二)l在struts1中,通过action path“/test/helloworld”节点的path属性指定访问该action的URL路

struts2 (二)
l在struts1中,通过<action path=“/test/helloworld”>节点的path属性指定访问该action的URL路径。在struts2中,情况就不是这样了,访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例如访问本例子HelloWorldAction的URL路径为:/test/helloworld(注意:完整路径为:http://localhost:端口/内容路径/test/helloworld)。另外我们也可以加上.action后缀访问此Action。 <package name="csdn" namespace="/test" extends="struts-default">        <action name="helloworld" class="cn.csdn.action.HelloWorldAction" method="execute" ><result name="success">/WEB-INF/page/hello.jsp</result>         </action>  </package> lAction名称的搜索顺序1.获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action 2.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3;3.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,则转步骤4;4.寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然不存在这个package,就去默认的namaspace的package下面去找名字为test的action(默认的命名空间为空字符串"" ),如果还是找不到,页面提示找不到action。lAction配置中的各项默认值<package name="csdn" namespace="/test" extends="struts-default">        <action name="helloworld" class="cn.csdn.action.HelloWorldAction" method="execute" ><result name="success">/WEB-INF/page/hello.jsp</result>         </action>   </package> 1>如果没有为action指定class,默认是ActionSupport。 2>如果没有为action指定method,默认执行action中的execute() 方法。 3>如果没有指定result的name属性,默认值为success。 lAction中result的各种转发类型<action name="helloworld" class="cn.csdn.action.HelloWorldAction"> <result name="success">/WEB-INF/page/hello.jsp</result></action> result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值)、redirect、 redirectAction 、 plainText。 下面是redirectAction 结果类型的例子,如果重定向的action中同一个包下: <result type="redirectAction">helloworld</result> 如果重定向的action在别的命名空间下: <result type="redirectAction"> <param name="actionName">helloworld</param> <param name="namespace">/test</param> </result> plaintext:显示原始文件内容,例如:当我们需要原样显示jsp文件源代码 的时候,我们可以使用此类型。 <result name="source" type="plainText "> <param name="location">/xxx.jsp</param> <param name="charSet">UTF-8</param><!-- 指定读取文件的编码 --> </result> 在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性。如下:<result type="redirect">view.jsp?id=${id}</result>l多个Action共享一个视图--全局result配置当多个action中都使用到了相同视图,这时我们应该把result定义为全局视图。struts1中提供了全局forward,struts2中也提供了相似功能:<package ....> <global-results> <result name="message">/message.jsp</result> </global-results> </package>  

热点排行