Struts2配置参数
Struts2配置文件详解——s...

33.
34.<beantype="org.apache.struts2.dispatcher.multipart.MultiPartRequest"name="struts"class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest"scope="default"optional="true"/>
63.
64.<beantype="com.opensymphony.xwork2.TextProvider"name="struts"class="com.opensymphony.xwork2.TextProviderSupport"/>
65.
66.
67.<!-- Struts2中一些可以静态注入的bean,也就是不需要实例化的 -->
11.
12.<beantype="com.opensymphony.xwork2.ActionProxyFactory"name="xwork"class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
02Struts2配置详解

Struts 2 Action 2-2
/user!register.action /user!login.action
动态方法调用
作用:减少Action数量 public class UserAction implements Action { 调用UserAction的register()方法 调用UserAction的login()方法 … 使用:actionName!methodName.action public String login() { … 禁用:将属性strutsenableDynamicMethodInvocation设臵为 } false public String register() { … } <action name="user" class="erAction"> } <result name="login">/page/manage.jsp</result> <result name="register">/page/success.jsp</result> <result name="login_input">/page/login.jsp</result> <result name="register_input">/page/register.jsp</result> <result name="error">/page/error.jsp</result> </action> 演示示例:动态方法调用
第二章
3_Struts 2 配置

默认类与控制器
当没有设置Action的class属性时,可以使用defaultclass-ref元素设置默认的Action类 当访问一个不存在的Action时,可以使用defaultaction-ref元素引用一个默认的Action
Struts 2配置
主要内容
Struts 2的配置文件 Struts 2常用配置
Struts 2的配置文件
struts-default.xml
struts-plugin.xml struts.xml struts.properties web.xml
默认配置文件
插件配置文件 主要配置文件 属性文件 web程序部署描述符
1. 2. 3. 4. name //包的名称,不能相同 extends//继承strut-default包的功能 abstract//设置包为抽象的,不能放置action namespace//设置访问action前缀,可以相同,覆盖。
通配符
使用通配符Struts可以自动匹配类,方法,文件。提供开 发效率。
web.xml配置
为StrutsPrepareAndExecuteFilter配置参数,设置加载 的配置文件。
struts.properties配置
struts.devMode=true 设置为开发模型,会有更详细的调试信息。 struts.action.extension=action,,do 设置用户请求的扩展名 struts.enable.DynamicMethodInvocation=true 可以动态方法调用(注:文件在WEB-INF/classes下,也可 以在struts.xml文件中用节点<constant name=“struts.devMode” value=“true“>)
Struts2的配置文件详解

1.3.包含配置:
在Struts2中可以将一个配置文件分解成多个配置文件,那么我们必须在struts.xml中包含其他配置文件。
<struts>
<includefile="struts-default.xml"/>
<includefile="struts-user.xml"/>
erName= userName;
}
/**
*@returnthepassword
*/
publicString getPassword() {
returnpassword;
}
/**
*@parampasswordthepasswordtoset
*/
publicvoidsetPassword(String password) {
</action>
</package>
</struts>
如上示例的配置,配置了一个名为default的包,该包下定义了一个Action。
1.2.命名空间配置:
考虑到同一个Web应用中需要同名的Action,Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。
Struts2通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。
l public Map getSession():返回一个Map对象,该Map对象模拟了HttpSession实例。
l public void setSession(Map session):直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名-属性值对。
01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

1. Struts2简介1.1. 什么是Struts21.1.1. Struts2的概念Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。
轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。
Struts2实现了MVC,满足了MVC设计思想。
在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。
作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。
这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。
Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。
重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。
1.1.2. 什么是MVCMVC是代码的分层思想,是软件设计领域经典的设计模式。
它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。
1、M-Model 模型模型(Model)的职责是负责业务逻辑。
包含两层:业务数据和业务处理逻辑。
比如实体类、DAO、Service都属于模型层。
2、V-View 视图视图(View)的职责是负责显示界面和用户交互(收集用户信息)。
属于视图的组件是不包含业务逻辑和控制逻辑的JSP。
3、C-Controller 控制器控制器是模型层M和视图层V之间的桥梁,用于控制流程。
比如:在Servlet项目中的单一控制器ActionServlet。
struts2_01(入门与配置)

开发环境:MyEclipse6.5+Tomcat6.0+JDK1.5一、下载struts-2.0.11-all二、新建一个Web Project,命名为struts2,新建login.jsp和result.jspLogin.jsp主要内容如下result.jsp(也可以用username:<%= request.getParameter("username") %>)在Tomcat6.0的conf 下的server.xml下增加一句话三、将需要的包复制到项目struts2下的lib中(暂时只需5个)四、修改struts2下的web.xml,增加过滤器五、新建一个包,命名为com.test.action,再新建一个名为LoginAction 的类,类中内容如下六、在struts2下的src下新建一个struts.xml内容为:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><package name="struts2" extends="struts-default"><action name="login" class="com.test.action.LoginAction" method="execute"><result name="success">/result.jsp</result></action></package></struts>七、开启tomcat,在浏览器中浏览注:我并没有更改编码,所以测试数据用英文,否则会乱码八、使用struts2的标签库,并增加对用户的验证新建一个login2.jsp注意:form的action属性内容改为login,这是标签库的简化效果,Label表示文本框前面是提示修改类LoginAction(注意增加的内容)注意:this.addFieldError("username","username required") "username" 针对表单中文本框的名称"username required" 是提示的错误信息在调用这个类时,会先调用validate方法验证用户名和密码是否为空,然后再运行execute方法。
struts2的配置参数汇总.

#该属性默认值为struts-default.xml,struts-plugin.xml,struts.xmlstruts.configuration.files=struts.xml#指Web应用的默认编码集。
是指该属性相当于在过滤器中调用HttpServletRequest.setCharacterEncoding("GBK")方法struts.i18n.encoding=utf-8#如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号隔开。
例如:struts.action.extension=action,jnlp,dostruts.action.extension=action#当struts.xml文件改变时系统是否自动重新加载该文件。
默认值为false。
struts.configuration.xml.reload=true#该属性设置struts2应用是否使用开发模式。
如果为true,则可以在应用出错是显示更多更友好的提示。
默认值为false。
struts.devMode = true#每次HTTP请求到达时,系统是否从新加载资源文件。
默认值为false。
struts.i18n.reload=true#该属性指定视图标签默认的视图主题,默认值是xhtmlstruts.ui.theme=simple#该属性指定在使用Struts2标签时是否可以使用表达是语法。
默认值为true。
struts.tag.altSyntax=true#指定加载Struts2配置文件的配置文件管理器。
该属性的默认只是org.apache.struts2.config.DefaultConfiguration。
#如果我们需要实现自己的配置管理器,则可以实现Configuration接口。
#然后将此属性的值改为自定义的配置管理器类。
#struts.configuration=org.apache.struts2.config.DefaultConfiguration#Struts2默认的对象工厂(IOC容器)为spring#struts.objectFactory = spring#指定Spring框架的自动装配模式,该属性默认值是name。
struts2限制请求体集合大小的参数

struts2限制请求体集合大小的参数在Struts2 中,如果你想要限制请求体(通常是HTTP POST 请求的内容)的大小,你可以通过配置Struts2 的struts.xml文件或使用Struts2 的过滤器来实现。
1.在struts.xml中配置:你可以在Struts2 的struts.xml配置文件中设置struts.multipart.maxSize参数来限制上传文件的大小。
这个参数也间接地限制了请求体的大小,因为它主要用于文件上传。
xml<constant name="struts.multipart.maxSize"value="your_size_in_bytes" />这里your_size_in_bytes是你想要设置的最大请求体大小(以字节为单位)。
2. 在Web.xml 中配置:如果你使用的是Struts2 的struts2-filter,你也可以在web.xml文件中设置filter-init-param来限制请求体大小。
xml<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class><init-param><param-name>struts.multipart.maxSize</param-name><param-value>your_size_in_bytes</param-value></init-param></filter>1.注意:2.1.struts.multipart.maxSize主要用于限制文件上传的大小。
Struts2的web.xml配置

Struts2讲义(1):web.xml配置在现在开发的Web项目中,大家都是使用web.xml来实现MVC框架的应用。
既然Struts2也属于MVC 框架,因此在web.xml中必定要配置Struts2用以实现应用。
技术要点本节代码说明Struts2基本配置。
1、如何加载FilterDispatcher过滤器。
2、如何使用FilterDispatcher过滤器拦截URL。
演示代码Java 代码1.<!--------------------------------------- 文件名: web.xml-------------------------------->2.<?xml version="1.0" encoding="GB2312"?>3.<web-app xmlns=/xml/ns/j2ee4. xmlns:xsi=/2001/XMLSchema-instance5. version="2.4"6.xsi:schemaLocation="/xml/ns/j2ee7./xml/ns/j2ee/web-app_2_4.xsd">8. <filter>9. <!-- 过滤器名字 -->10. <filter-name>struts2</filter-name>11. <!-- 过滤器支持的struts2类 -->12. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>13. </filter>14.15. <filter-mapping>16. <!-- 过滤器拦截名字 -->17. <filter-name>struts2</filter-name>18. <!-- 过滤器拦截文件路径名字 -->19. <url-pattern>/*</url-pattern>20. </filter-mapping>21. <welcome-file-list>22. <welcome-file>index.jsp</welcome-file>23. </welcome-file-list>24.</web-app>代码解释(1)在Struts1中web.xml中对它的加载都是加载一个Servlet,但是在Struts2中,因为设计者为了实现AOP(面向方面编程)概念,因此是用filter来实现的。
Struts2配置文件详解--精品版

7. struts.xml
struts.xml 文件中包含的是我们开发的 Action 的配置。如前面登录例子中的配置:
4. struts.properties 文件
这个文件提供了一种更改框架默认行为方式的机制。在一般情况下,如果不是打算让 调试更加方便的话,我们没有必要更改这个文件。哪么这些默认的属性在哪里存放呢? 在项目的 src 目录中可以自己编写一个名称为 struts.properties 文件, 编译以后就放 到了/WEB-INF/classes 中,Struts2 框架在启动的时候,会自动读取这个文件,但是在读 取这个文件之前,会先到 struts2-core-xxx.jar 包中加载名为 default.properties 文件, 这个文件中定义了默认的配置,所以我们可以在 strtus.properties 中定义一些配置覆盖 default.properties 中的配置,如果没有 struts.properties 文件,则采用默认配置。 打开 default.properties 文件我们会看到如下部分类容:
/
Copyright©2010 吴青版权所有
吴老师教学讲义
4
打开该文件, 可以看到一些全局的配置选项, 在这些选项中, 我们发现了有一些这样的配置, 其中 struts.action.extension 配置的就是 Struts 默认的请求后缀名。 关于更多的配置的含义, 后面用到了再讲解,现在暂时不必理会这些配置的含义.
### Used by the DefaultActionMapper ### You may provide a comma separated list, e.g. struts.action.extension=action,jnlp,do ### The blank extension allows you to match directory listings as well as pure action names ### without interfering with static resources. struts.action.extension=action,, ### This can be used to set your default locale and encoding scheme # struts.locale=en_US struts.i18n.encoding=UTF-8
struts2配置文件详解

<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<cosntant name="struts.ui.theme" value="xhtml" />
<!-- spring 托管 -->
<constant name="struts.objectFactory" value="spring" />
<!--
指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="GBK" />
<!-- 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 -->
Struts2框架配置文件详解大全

一、web.xml配置文件任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。
所有的MVC框架都需要web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatche r,只要Web应用负责加载FilterDispatc her,FilterDispatc her将会加载饮用的Str uts2框架。
配置FilterDispatc her的代码片段如下:-------------------------------------web.xm l------------------------------------------------------------------- <?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"><!-- 配置Struts2框架的核心Filter --><filter><!-- 配置Struts2核心Filter的名字 --><filter-name>struts2</filter-name><!-- 配置Struts2核心Filter的实现类 --><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</f ilter-class></filter><!-- 配置Filter拦截的URL --><filter-mapping><!-- 配置Struts2核心FilterDispatcher拦截所有用户请求 --><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>-------------------------------------------------------------------------------------------------------------------- 二、struts.properties配置文件Struts2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。
struts2常用常量配置

struts2 常用<?xml version="1.0" encoding="UTF-8"?>< !DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd">< struts><!-- 指定W eb应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法--><constant name="struts.i18n.encoding" value="UTF-8"/><!-- 该属性指定需要Struts 2处理的请求后缀,该属性的默认值是act ion,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
--><constant name="struts.action.extens ion" value="do"/><!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭--><constant name="struts.serve.static.browserCache" value="false"/><!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开--><constant name="struts.configuration.xml.reload" value="true"/><!-- 开发模式下使用,这样可以打印出更详细的错误信息--><constant name="struts.devMode" value="true" /><!-- 默认的视图主题--><constant name="struts.ui.theme" value="simple" /><!--与spring集成时,指定由spring负责action对象的创建--><constant name="struts.objectFactory" value="spring" /><!--设置是否支持动态方法调用,默认值是true,如果要关闭动态方法调用,则可设置该方法为false.--><constant name = "struts.enable.DynamicMethodInvocation" value = "true" /><!--上传文件的大小限制--><constant name = "struts.multipart.maxSize" value = "10701096" />。
struts2配置及项目启动

1,Struts2的配置:1.1项目的配置:第一步:导包:将D:\software\tool\struts2\struts-2.3.16.1\apps\struts2-blank\WEB-INF\lib中的jar 包全部导入项目的lib文件夹中,其中jar包有:xw o rk-co re-2.3.16.1.j ar asm-3.3.j ar asm-co m m o ns-3.3.j ar asm-t ree-3.3.j ar co m m o ns-f i l eup l o ad-1.3.1.j ar co m m o ns-i o-2.2.j ar co m m o ns-l ang3-3.1.j ar co m m o ns-l o g g i ng-1.1.3.j ar f reem arker-2.3.19.j ar j avassi st-3.11.0.G A.j arl o g4j-1.2.17.j ar o g nl-3.0.6.j ar st rut s2-co re-2.3.16.1.j ar第二步:导入struts.xml文件文件中package可以自己定义。
第三步:编写web.xml文件其内容为struts2的核心拦截器,其他拦截去如果需要,必须写到struts2拦截器上面,否则,不起作用。
第四步:开发antion在后面详细描述;1.2开发action方式一:继承ActionSupport如果用struts2数据校验,必须继承此类。
方式二:实现Action 接口方式三:不继承任何类,不识闲任何接口1.3访问通配符通配符:在struts 中配置信息中,可以用*于{1}优化配置<package name="config" namespace="/" extends="struts-default"> 1.4 struts 中路径匹配原则1,访问路径=命名空间+action 的name 属性:public class UserAction extends ActionSupport{<!--<action name="login" class="cn.itcast.a_erAction2" method="login"> <result name="success">/index.jsp</result> </action> <action name="register" class="cn.itcast.a_erAction2" method="register"> <result name="success">/index.jsp</result> </action> --> <action name="user_*" class="cn.itcast.a_erAction2" method="{1}"> <result name="{1}">/{1}.jsp</result> </action></package><package name="config" namespace="/user" extends="struts-default"><action name="user_*" class="cn.itcast.a_erAction2" method="{1}"><result name="{1}">/{1}.jsp</result></action></package>访问的路径为:http://localhost:8080/user/user_login,其中login可以改为别的action 的name属性。
Struts2详细配置

</action>
<!--注:action节点和result节点的配置可用通配符的形式简化配置,但为了更好的维护性不推荐用通配符,如:<action name="*_*" class="com.{2}Action" method="{1}"><result name="success">{1}_{2}.ftl</result></action>-->
</package>
</struts>
2.拦截器配置:非必须的配置,拦截器能在action被调用之前/被调用之后执行自己插入的功能
(1).自定义拦截器:
①.action拦截器:action拦截器是实现接口com.opensymphony.xwork2.interceptor.Interceptor实现的,它作用于整个action
n;extends的值是struts-default(当前包继承的父包),也可以继承其它包(继承的顶级包必须继承struts-default,即至少有一个包要继承Struts2的默认/核心包),当前包
继承父包后即拥有父包下的所有节点,也可以覆盖父包的节点;abstract的值表示包是否为抽象包,抽象包中不能配置action节点(即使配置了也无效也不能访问),抽象包通
<init-param> <!--非必须的配置但最好配置上,配置Struts2的常量中的编码方式,作用于freemarker、velocity的输出/编码方式,也可以配置在src下的struts.xml/struts.properties中(推荐配置在此)-->
struts2的Action参数详细说明

Struts2 Action参数详细说明1,Action的配置格式基本为:<package name="包名字" extends="继承的包" namespace="空间名" > <action name="访问的名称" class="处理请求的类"><result name="处理类返回的结果名称">该结果名称所对应的JSP页面</result> </action></package>如:<package name="aa" extends="struts-default" ><action name="myaa" class="com.test.MyAction"><result name="success">/test/msg.jsp</result></action></package>访问时:<a href="myaa.action" >访问myaaAction</a>2,method属性,该属性可以把一个类的多个方法映射为多个Action,如:类文件public class MethodAction extends ActionSupport{public String add(){return SUCCESS;}public String delete(){return SUCCESS;}public String modify(){return SUCCESS;}public String query(){return SUCCESS;}}struts.xml配置文件:<action name="访问的方法名" class="处理的类" method="处理的方法名"> <result name="结果页名">结果页面</result></action><action name="add" class="com.struts2.chen.MethodAction" method="add"> <result name="success">/method/addRes.jsp</result></action><action name="delete" class="com.struts2.chen.MethodAction" method="delete"> <result name="success">/method/deleteRes.jsp</result></action><action name="modify" class="com.struts2.chen.MethodAction" method="modify"> <result name="success">/method/modifyRes.jsp</result></action><action name="query" class="com.struts2.chen.MethodAction" method="query"> <result name="success">/method/queryRes.jsp</result></action>页面:<a href="add.action">增加</a><br /><a href="delete.action">删除</a><br /><a href="modify.action">修改</a><br /><a href="query.action">查询</a><br />3。
struts2的配置文件

<!-- 定义默认的拦截器 每个Action都会自动引用,如果Action中引用了其它的拦截器,默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当前路径为web-inf/classes
struts2的配置文件
类型
struts2共有4类配置文件,
struts.properties:定义框架自身的全局变量。
struts-default.xml:定义框架自身使用的action映射及result定义。
struts-plugin.xml:struts插件使用的配置文件,比如当使用struts和spring结合时就需要在web.xml中引用该配置文件。
-->
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
<interceptors>
<!-- 定义拦截器-->
<interceptor name="timer" class="com.kay.timer"></interceptor>
Struts2入门及配置(许业生)

Struts2入门及环境配置虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts 1而言。
Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。
从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。
或者说,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。
因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。
Apache Struts2是一个优雅的,可扩展的JAVA EE web框架。
框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。
Apache Struts 2即是之前大家所熟知的WebWork 2。
在经历了几年的各自发展后,WebWork和Struts社区决定合二为一,也即是Struts 2Struts 2 英文官方网站:下面我们来用一个简单的实例来学习一下Struts2,大家都知道MyEclipse集成开发环境中对Struts1有了很好的支持,我们可以用MyEclipse就可以给项目添加Struts1支持,但是Struts2目前就没有什么好的工具可以直接给项目添加Struts2支持了,我们必须全部手动添加了,其实对与初学者我建议不要用工具进行生产,自己手动配置一下会让你对一个新技术有很好的理解。
先不多说了,下面我们开始吧!新建一个web项目,项目名称就叫Struts2,项目建好了,我们该给项目添加Struts2支持了吧,要引入很多jar包,这些jar包从哪里来呢!没关系,下面是目前最新版本Struts2.1.6官方下载地址:下载完毕后,我们将你下载的zip格式的文件解压,解压完了找到解压包里面的lib文件夹,里面包含了Struts2所有的jar文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、Struts2配置文件Struts2相关的配置文件有web.xml,struts.xml,struts.properties,struts-default.xml,velocity.properties,struts-default.vm。
其中web.xml,struts.xml是必须的,其它的配置文件可选择。
它们在web应用中的功能如下:web.xml:包含所有必须的框架组件的web部署描述符。
Struts.xml:配置包含result/view类型、action映射、拦截器等的Struts2的主要配置文件。
Struts.properties:配置struts2的框架属性。
Struts-default.xml:在文件在struts-action-x.x.jar中,该文件是应该被包含在struts.xml中的缺省配置。
Welocity.properties:重写了velocity的配置文件。
Struts-default.vm:相对于velocity的缺省配置。
二、Struts2配置元素Struts2核心的配置文件是缺省的struts.xml。
必要的时候,缺省的配置文件可以包含其它的配置文件;struts文件可以放入jar中,并自动插入应用程序,这样每个模块可以包含自己的配置文件并自动配置。
在Freemarker和V elocity 模块中,模板也能从classpath中加载,所以整个模块可以作为一个简单的jar文件被包含。
Struts.xml配置文件可以包含Interceptor、Action类和Results。
Struts.xml配置元素说明:1、PackagesPackages:packages把actions、results、results types、interceptors和interceptor-stacks组装到一个逻辑单元中,从概念上讲,packages就像一个对象,可以被其它子包从写,而且可以拥有自己独立的部分。
Name属性是packages的必填元素,它作为一个关键字被后边的包引用;extends元素是可选的,它允许包扩展一个和多个前边定义的包。
注意,struts.xml文件是至上而下处理的,所有被扩展的包,需要在扩展包前定义。
Abstract元素是可选的,它可以申明一个不包含actions的配置文件。
2、NamespaceNamespace元素把actions细分到逻辑模块,每一个namespace都有自己的前缀(prefix),namespace避免了action之间的名字冲突,当前缀出现在URI中时,这些标签都是名字空间感知的(“namespace aware”),所以这些namespace prefix不必嵌入到表单或连接中。
Default的namespace是一个空字符串“”,如果在指定的配置文件中,没有找到action,缺省的namespace也会被查找。
Local/global策略允许应用程序在action “extends”元素层次结构之外,有全局的action配置。
缺省的namespace也可以不在package中申明。
Namespace prefix可以注册为java的申明式安全,以确保授权的用户才能访问namespace的资源。
Root namespace(“/”)也被支持,root就是当直接请求context path的时候的namespace。
[个人理解:namespace的用法就像struts1.x中的path一样,只不过它在package中什么路径,而在action中申明action名子罢了]3、IncludeInclude元素使得框架能应用“divide and conquer”来配置文件。
被include的每个配置文件必须和struts.xml有一样的格式,一个大的项目可以采用这样方式来组织程序模块。
Include元素也可以和package交替出现,框架将按照顺序加载配置文件。
4、Interceptor configurationInterceptor允许应用程序在Action方法执行前后定义执行代码,Interceptor在应用程序开发中十分重要,对于Interceptor有许多用例,如validation, property population, security, logging, 和profiling。
Interceptor被定义为一个Java类,Interceptor也可以组装成Interceptor-stack,他们将按照定义的顺序执行。
在struts-default.xml中定义了一些缺省的Interceptor-stack,以便框架能很好地运行。
5、ActionAction是框架的“工作单元”。
Action可以指定一个Interceptor-stack、一序列的return type和一序列的异常处理,但只有name属性是必须的。
配置参数说明如下:struts.action.extensionThe URL extension to use to determine if the request is meant for a Struts action用URL扩展名来确定是否这个请求是被用作Struts action,其实也就是设置action的后缀,例如login.do的'do'字。
struts.configurationThe org.apache.struts2.config.Configuration implementation classorg.apache.struts2.config.Configuration接口名struts.configuration.filesA list of configuration files automatically loaded by Strutsstruts自动加载的一个配置文件列表struts.configuration.xml.reloadWhether to reload the XML configuration or not是否加载xml配置(true,false)struts.continuations.packageThe package containing actions that use Rife continuations含有actions的完整连续的package名称struts.custom.i18n.resourcesLocation of additional localization properties files to load加载附加的国际化属性文件(不包含.properties后缀)struts.custom.propertiesLocation of additional configuration properties files to load加载附加的配置文件的位置struts.devModeWhether Struts is in development mode or not是否为struts开发模式struts.dispatcher.parametersWorkaroundWhether to use a Servlet request parameter workaround necessary for some versions of WebLogic(某些版本的weblogic专用)是否使用一个servlet请求参数工作区(PARAMETERSWORKAROUND)struts.enable.DynamicMethodInvocationAllows one to disable dynamic method invocation from the URL允许动态方法调用struts.freemarker.manager.classnameThe org.apache.struts2.views.freemarker.FreemarkerManager implementation classorg.apache.struts2.views.freemarker.FreemarkerManager接口名struts.i18n.encodingThe encoding to use for localization messages国际化信息内码struts.i18n.reloadWhether the localization messages should automatically be reloaded是否国际化信息自动加载struts.localeThe default locale for the Struts application默认的国际化地区信息struts.mapper.classThe org.apache.struts2.dispatcher.mapper.ActionMapper implementation classorg.apache.struts2.dispatcher.mapper.ActionMapper接口struts.multipart.maxSizeThe maximize size of a multipart request (file upload)multipart请求信息的最大尺寸(文件上传用)struts.multipart.parserThe org.apache.struts2.dispatcher.multipart.MultiPartRequest parser implementation for a multipart request (file upload)专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart.MultiPartRequest解析器接口(文件上传用)struts.multipart.saveDirThe directory to use for storing uploaded files设置存储上传文件的目录夹struts.objectFactoryThe com.opensymphony.xwork2.ObjectFactory implementation classcom.opensymphony.xwork2.ObjectFactory接口(spring)struts.objectFactory.spring.autoWireWhether Spring should autoWire or not是否自动绑定SpringeClassCacheWhether Spring should use its class cache or not是否spring应该使用自身的cachestruts.objectTypeDeterminerThe com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation classcom.opensymphony.xwork2.util.ObjectTypeDeterminer接口struts.serve.static.browserCacheIf static content served by the Struts filter should set browser caching header properties or not是否struts过滤器中提供的静态内容应该被浏览器缓存在头部属性中struts.serve.staticWhether the Struts filter should serve static content or not是否struts过滤器应该提供静态内容struts.tag.altSyntaxWhether to use the alterative syntax for the tags or not是否可以用替代的语法替代tagsstruts.ui.templateDirThe directory containing UI templatesUI templates的目录夹struts.ui.themeThe default UI template theme默认的UI template主题struts.url.http.portThe HTTP port used by Struts URLs设置http端口struts.url.https.portThe HTTPS port used by Struts URLs设置https端口struts.url.includeParamsThe default includeParams method to generate Struts URLs在url中产生默认的includeParamsstruts.velocity.configfileThe Velocity configuration file pathvelocity配置文件路径struts.velocity.contextsList of Velocity context namesvelocity的context列表struts.velocity.manager.classnameorg.apache.struts2.views.velocity.VelocityManager implementation classorg.apache.struts2.views.velocity.VelocityManager接口名struts.velocity.toolboxlocationThe location of the Velocity toolboxvelocity工具盒的位置struts.xslt.nocacheWhether or not XSLT templates should not be cached是否XSLT模版应该被缓存在Struts2中,action中的getXXX()只在服务器启动时执行一次,一刷新页面显示的数据内容全都没了,这种问题的解决办法是:在web.xml中配置struts2.0时,<filter-mapping><filter-name>action2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>把/*改成*.ation就OK了。