struts2的action的知识点和利用action向页面注入值的操作
1. Action的顺序,会先搜索指定名字下的包的action,如果找不到会去搜索默认路径下的包下的action。
2. 如果没有给action设置值,那么action会有一些默认值,如果没有指定class,默认ActionSupport,如果没有指定方法,默认为execute方法,如果没有指定result属性默认是success属性。
3. <package name="aa" namespace="/test"extends="struts-default">
<action name="fish">
<result>/index.jsp</result>
</action>
</package>
利用默认值实现一个最简单的跳转
3. result的各种转发类型:dispatcher(默认);redirect(重定向)这里跳转到jsp但是jsp不能在web-inf路径下;redirectAction,;plainText
,
4. 什么是重定向?
重定向是一种特殊的页面,它提供一种运作机制,使得人们在输入该名称进入条目或者点击指向该名称的内部链接时,系统能够自动导航到重定向页面内部指定的另一相关页面中,从而实现相关页面可以以多个名称进行访问。举例来说,如果设定了一个指向“澳大利亚”的名称为“澳洲”的重定向页,任何人都可以用“澳洲”这一名称进入到澳大利亚条目中。
我们在网站建设中,时常会遇到需要网页重定向的情况:
1.网站调整(如改变网页 目录结构);
2.网页被移到一个新地址;
3.网页扩展名改变(如应用需要把.php改成.Html或.shtml)。
5.<global-results>这是全局试图
6.<action name="redfish">
<result type="redirect" >/index.jsp</result>
</action>
这是重定向的用法。
这是Test.Java文件
packagecom.fish;
public class Test {
privateString username;
publicString getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
publicString execute(){
return "success";
}
}
这是一个struts2.XML文件
<package name="fish"namespace="/test" extends="struts-default">
<action name="redfish" class="com.fish.Test"method="execute">
<param name="username">张三</param>//我们可以通过获取节点来设置username的值
<result name="success">
/MyJsp.jsp
</result>
</action>
那么我们在jsp里面通过el表达式就可以获得
$(username)里面的值为张三
下面我们在struts2.xml加上一段话
<action name="aa">
<result type="redirectAction">redfish</result>
</action>
利用这个action我们可以调用上面的refish里面的视图,redirectAction是可以其他视图的。
我们在加上一句话,
<action name="bb">
<result type="redirect">/index.jsp</result>
</action>
通过这个我们可以对他重定向。重定向是会改变在浏览器里面的页面路径的,会指向真是存在的jsp或者action的路径。