Struts2的配置文件
来源:互联网 发布:网络主播网站 编辑:程序博客网 时间:2024/04/29 16:06
加载:
当应用被tomcat加载的时候,struts2的配置文件就已经被加载
加载顺序
- default.properties
- struts-default.xml
- strtuts-plugin.xml
- struts.xml
- struts.properties
- web.xml
配置方式
properties 文件 key=value的方式配置
xml 文件 (推荐)
注:如果有多个配置文件,有相同的参数,后面的值会覆盖前面的值
常量
例:覆盖常量
<constant name="struts.action.extension" value="html"></constant>
struts.properties覆盖常量
struts.action.extension=html
web.xml 配置过滤器参数
<display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.action.extension</param-name> <param-value>html</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
配置文件主要元素
package:
分包管理。易于管理动作类。便于模块化开发动作类。
name:包的名称。必须写。且必须唯一
extends:一般情况下需要继承struts-default包,但不是必须的。不过如果不继承的话,将无法使用struts2提供的核心功能。
struts-default.xml中定义着struts-default这个包。而struts-default.xml是在我们的struts.xml加载之前加载。
abstract:把包声明为抽象包,抽象包就是用来被继承的。只要是没有元素的包,就可以声明为抽象包。
namespace:名称空间。
访问路径= 名称空间 + 动作名称
<struts> <package name="xx" extends="struts-default" namespace="/"> <action name="xx" class="xx.xx"> <result>/index.jsp</result> </action> </package></struts>
action
作用:配置动作
属性: name 动作名称
class:动作类全名
默认的动作类:com.opensymphony.xwork2.ActionSupport
如果向替换默认动作类,在Struts.xml package中加入
package name="xx" extends="struts-default" namespace="/"> <default-class-ref class="自定义动作类名"></default-class-ref>
动作类常量
SUCCESS 正常ERROR 错误INPUT 回显LOGIN 登录NONE 不转向任何的视图
动作类路径
通配符 *
<struts> <package name="xx" extends="struts-default" namespace="/"> <action name="xx_*" class="xx.xx" method="{1}"> <result>/index.jsp</result> </action> </package></struts>
动态方法调用:
<a href="${pageContext.request.contentPath}/xx!username">xx</a>
允许动态方法调用:
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
result元素
为动作指定结果视图
name:逻辑视图的名称,对应着动作方法的返回值。默认值是success。
type:结果类型,指的就是用什么方式转到定义的页面。默认是dispatcher。
<struts> <package name="xx" extends="struts-default" namespace="/"> <action name="xx_*" class="xx.xx" method="{1}"> <result name="success" type="dispatcher">/index.jsp</result> </action> </package></struts>
type 取值
<result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/> <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/> <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/> <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/> <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/> <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/> <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/> <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/> <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" /></result-types>
dispatcher:请求转发
redirect:重定向
redirectAction:
重定向到另一个相同名称空间的动作
<struts> <package name="xx" extends="struts-default" namespace="/"> <action name="xx_*" class="xx.xx" method="{1}"> <result name="success" type="redirectAction">xxx</result> </action> <action name="xxx" class="xxx.xxx" > <result>/go.jsp</result> </action> </package> </struts>
重定向到不同名称空间的动作
<struts> <package name="xx" extends="struts-default" namespace="/"> <action name="xx" class="xx.xx" method="{1}"> <result name="success" type="redirectAction"> <param name="namespace">/xxx</param> <param name="actionName">x</param> </result> </action> <action name="xxx" class="xxx.xxx" > <result>/go.jsp</result> </action> </package> <package name="xxx" extends="struts-default" namespace="xxx"> <action name="x" class="xxx" method="xxx"> </struts>
chain:请求转发
<result name="success" type="chain">xxx</result>
param元素的作用:依赖注入(Dependence Injection)思想
我们通过struts-default.xml中的resultTypes元素中配置可以看出,每个结果类型视图其实都是靠一个类来实现的。而param元素就是将配置的参数,注入到该类中。
调用的是对应类的setter方法进行注入的。
redirectAction结果视图
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
该类中会有actionName和namespace属性的注入方法。
public void setActionNames(String actionName){this.actionName=actionName;}public void setNamespace(String namespace){this.namespace=namespace;}
自定义结果类型
结果类型就是类,这些类都实现了com.opensymphony.xwork2.Result接口。
或者继承自该接口的实现类org.apache.struts2.dispatcher.StrutsResultSupport。
这些类都有一个doExecute方法,用于执行结果视图。
public class xx extends StrutsResultSupport{ protected void doExecute(String arg0, ActionInvocation arg1) throws Exception { System.out.println("xxx"); }}
<result-types> <result-type name="xx" class="xx"></result-type> </result-types>
<result type="xx">go.jsp</result>
全局视图
<global-results> <result name="input" type="xx">/xxx.jsp</result> </global-results>
Servlet API
HttpServletRequest request = ServletActionContext.getRequest();HttpServletResponse response = ServletActionContext.getResponse()
引入其他配置文件
<include file="xx.xml"></include>
- Struts2的struts2.xml配置文件
- Struts2(1):Struts2的配置文件
- struts2.0 的配置文件
- 深入Struts2的配置文件
- Struts2的配置文件
- 深入Struts2的配置文件
- 深入Struts2的配置文件
- 深入Struts2的配置文件
- 深入Struts2的配置文件
- Struts2应用的配置文件
- 三、Struts2的配置文件
- Struts2的配置文件
- struts2的配置文件
- struts2 的配置文件DTD
- struts2的配置文件
- 深入Struts2的配置文件
- 深入Struts2的配置文件
- struts2的配置文件
- Android 主题和风格【2】
- 【数据结构】java栈和队列(面试题)
- SDP描述h264
- 小程序常见问题汇总,方便自己看
- stm32f051精确延时的实现
- Struts2的配置文件
- linux安装redis
- 题目1140:八皇后
- MTK Kernel启动流程源码解析 4 start_kernel 上
- 仿网易新闻标签选择器(可拖动)-TabMoveLayout
- Adjacent Bit Counts
- BLE 配对流程
- Oracle 11G 安装图解
- Android 隐藏虚拟按键及状态栏