Struts2的很多核心功能都是由拦截器实现的。
struts-default.xml中定义了这些拦截器与Result类型。
所以,不继承struts-default包,Struts2提供的很多核心功能是无法使用的。
1、package标签
配置包时必须指定name属性,该属性值可以任意取名,但必须唯一。
其与Java的类包间无对应关系。若其他包要继承该包,则必须通过该属性进行引用。
包的namespace属性用于定义该包的命名空间。
命名空间是访问该包下Action的路径的一部分。
此属性可以不配置。若不配置,则默认的命名空间为“”(空字符串)。
2、action标签
在struts2中,访问struts2中的action的URL路径由两部份组成:
包的命名空间+action的名称,
例如访问上篇文章例子中名为helloworld的Action的URL路径为:/test/bbbb 。
注意:
如果没有为action指定class,默认是ActionSupport。
而ActionSupport的execute() 方法的默认处理就是返回一个“success”字符串。
method属性用于指定执行action中的那个方法,
若没有指定,则默认值为“execute”,即执行指定action的execute方法。
3、result标签
result标签用于指定视图,name属性指定该视图的名称.
如果没有指定name属性,默认值为SUCCESS (常量SUCCESS的值为字符串常量“success”)。
struts2中提供了多种视图转向类型,类型由type属性指定,如:
dispatcher:请求转发(默认值)
redirect:重定向到页面
redirectAction:重定向到Action
plainText:原样显示要转向资源的源代码,而非显示代码的执行结果(火狐、IE8下可测试出效果,IE6下不行)。不常用。
注意,
对于请求转发的页面,可以是WEB-INF中页面;
而重定向的页面,是不能为WEB-INF中页的。
因为重定向相当于用户再次发出一次请求,而用户是不能直接访问WEB-INF中资源的。
在上一篇文章 2.第一个Struts2程序-HelloWorld程序中,
struts.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="aaaa" namespace="/test" extends="struts-default"> <action name="bbbb" class="actions.HelloWordAction"> <result>/welcome.jsp</result> </action> </package> </struts>
HelloWordAction.java代码如下
package actions; public class HelloWordAction { public String execute(){ System.out.println("I am HelloWordAction.java"); return "success"; } }
如果想修改HelloWordAction.java为:
package actions; public class HelloWordAction { public String some(){ System.out.println("I am HelloWordAction.java"); return "other"; } }
那么必须要修改struts.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="aaaa" namespace="/test" extends="struts-default"> <action name="bbbb" class="actions.HelloWordAction" method="some"> <result name="other">/welcome.jsp</result> </action> </package> </struts>
3.Struts2配置文件标签介绍