Struts2开发 基本配置与类型转换
本文导语: 一、Action配置中的各项默认值 /WEB-INF/page/hello.jsp 1>如果没有为action指定class,默认是ActionSupport。2>如果没有为action指定method,默认执行action中的execute() 方法。3>如果没有指定result的name属性,默认值为su...
一、Action配置中的各项默认值
/WEB-INF/page/hello.jsp
1>如果没有为action指定class,默认是ActionSupport。
2>如果没有为action指定method,默认执行action中的execute() 方法。
3>如果没有指定result的name属性,默认值为success。
二、Action中result的各种转发类型
/WEB-INF/page/hello.jsp
result配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有: dispatcher(默认值)、 redirect 、 redirectAction 、 plainText。
下面是redirectAction 结果类型的例子,如果重定向的action中同一个包下:
helloworld
如果重定向的action在别的命名空间下:
helloworld
/test
plaintext:显示原始文件内容,例如:当我们需要原样显示jsp文件源代码 的时候,我们可以使用此类型。
/xxx.jsp
UTF-8
在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性。如下:
view.jsp?id=${id}
三、多个Action共享一个视图--全局result配置
当多个action中都使用到了相同视图,这时我们应该把result定义为全局视图。struts1中提供了全局forward,struts2中也提供了相似功能:
/message.jsp
四、为Action的属性注入值
Struts2为Action中的属性提供了依赖注入功能,在struts2的配置文件中,我们可以很方便地为Action中的属性注入值。注意:属性必须提供setter方法。
public class HelloWorldAction{
private String savePath;
public String getSavePath() {
return savePath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
......
}
/images
/WEB-INF/page/hello.jsp
上面通过节点为action的savePath属性注入“/images”
五、指定需要Struts 2处理的请求后缀
前面我们都是默认使用.action后缀访问Action。其实默认后缀是可以通过常量”struts.action.extension“进行修改的,例如:我们可以配置Struts 2只处理以.do为后缀的请求路径:
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。如:
六、细说常量定义
常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,两种配置方式如下:
在struts.xml文件中配置常量
在struts.properties中配置常量
struts.action.extension=do
因为常量可以在下面多个配置文件中进行定义,所以我们需要了解struts2加载常量的搜索顺序:
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties
web.xml
如果在多个文件中配置了同一个常量,则后一个文件中配置的常量值会覆盖前面文件中配置的常量值.
七、常用的常量介绍