上次在博客种已经写过struts2开发环境的搭建了,这次就接着上次的讲一下struts2实现跳转的机制,另外在多人开发的环境下用一个struts配置文件是不太可能的。下面就结合这个以及跳转说一下这个例子。
1.在struts种默认的跳转是服务器端跳转
2.配置struts2的服务器端跳转
如果在同一个包下面就像下面一样配置
<result name="success1" type="redirect"></result>
3.给struts2减肥
在原来的struts配置文件中加入
<include file="mystruts.xml"></include>
这里需要注意路径,这样就可以几个人一起开发了
4.在日常的开发中,跨包的跳转也是比较常用的,下面就结合上面的配置弄一下,只需加入如下代码就Ok了
<result name="success1" type="redirectAction">
<param name="namespace">/redirect</param>
<param name="actionName">HelloAction2</param>
</result>
这里的type是固定的,namespace和actionName都是固定写法,前者是名称空间一般配置在package标签里,默认是“/”这里为了方便mystruts.xml就配置成下面这样
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts21" extends="struts-default" namespace="/redirect">
<action name="HelloAction2" class="org.lxh.action.UserAction2"> <!-- 这里的class使用类全名 -->
<result name="success" type="redirect">/index.jsp</result>
</action>
</package>
</struts>
这里配置文件已经分开了,为了看得比较清楚我把配置文件也贴上
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="mystruts.xml"></include>
<package name="struts2" extends="struts-default">
<action name="HelloAction" class="org.lxh.action.UserAction"> <!-- 这里的class使用类全名 -->
<result name="success1" type="redirectAction">
<param name="namespace">/redirect</param>
<param name="actionName">HelloAction2</param>
</result>
</action>
</package>
</struts>
这里的action我就不贴出来了,相信大家可以看懂的。如果有问题可以给我写留言。