Struts2 part 1:快速入门

导入jar包,struts-2.3.4\apps\struts2-blank.war 中所有jar包

struts2-core-2.3.1.1.jar:Struts 2框架的核心类库
xwork-core-2.3.1.1.jar:Command模式框架,WebWork和Struts2都基于xwork
ognl-3.0.3.jar:对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性
freemarker-2.3.18.jar:Struts 2的UI标签的模板使用FreeMarker编写
commons-logging-1.1.x.jar:ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。
commons-fileupload-1.2.2.jar: 文件上传组件,2.1.6版本后需要加入此文件
commons-io-2.0.1.jar:传文件依赖的jar包
commons-lang-2.5.jar:对java.lang包的增强

在web.xml中配置Struts2过滤器,过滤器配置/* , 但是struts2 默认处理.action结尾请求,分发到相应Action类

<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

编写jsp页面

//request.jsp
<a href="${pageContext.request.contextPath }/request.action">请求</a>
//success.jsp

 Action类,方法名称必须是execute

package demo01;
public class RequestAction {
	public String execute() {
		return "success";
	}
}

 编写struts.xml文件

<struts>
	<constant name="struts.enable.DynamicMethodInvocation" value="false" />
	<constant name="struts.devMode" value="false" />

	<package name="default" namespace="/" extends="struts-default">
		<action name="request" class="demo01.RequestAction">
			<result name="success">/demo01/success.jsp</result>
		</action>
	</package>

</struts>

 如果不能联网,手动引入dtd约束

 

Struts2的配置文件由StrutsPrepareAndExecuteFilter负责加载,加载顺序

init_DefaultProperties(); // [1]   ----------  org/apache/struts2/default.properties 
init_TraditionalXmlConfigurations(); // [2]  --- struts-default.xml,struts-plugin.xml,struts.xml
init_LegacyStrutsProperties(); // [3] --- 自定义struts.properties 
init_CustomConfigurationProviders(); // [5]  ----- 自定义配置提供
init_FilterInitParameters() ; // [6] ----- web.xml 
init_AliasStandardObjects() ; // [7] ---- Bean加载 

default.properties 该文件保存在 struts2-core-2.3.7.jar 中 org.apache.struts2包里面  (常量的默认值)
struts-default.xml 该文件保存在 struts2-core-2.3.7.jar  (Bean、拦截器、结果类型 )
struts-plugin.xml 该文件保存在struts-Xxx-2.3.7.jar  (在插件包中存在 ,配置插件信息 )
struts.xml 该文件是web应用默认的struts配置文件 (实际开发中,通常写struts.xml )
struts.properties 该文件是Struts的默认配置文件  (配置常量 )
web.xml 该文件是Web应用的配置文件 (配置常量 )

默认action配置,客户端访问action,action未找到,会使用默认action,一般用于默认的错误处理页面

<default-action-ref name="action元素的name属性" />

action默认处理类配置,客户端访问action,action可以找到,但类没有找到,会执行action默认处理类

<default-class-ref class="完成类名" />

struts中默认常量在default.properties中,常量还可以在struts.xml中配置

<constant name="struts.devMode" value="true" />

 struts.properties中

 struts.devMode = true

 web.xml中

<filter>
			<filter-name>struts2</filter-name>
			<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
			<init-param>
				<param-name>struts.devMode</param-name>
				<param-value>true</param-value>
			</init-param>
		</filter>

 这三个位置都可配置常量

   指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出
    <constant name="struts.i18n.encoding" value="UTF-8"/>
   该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
   如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开
    <constant name="struts.action.extension" value="action"/>
   设置浏览器是否缓存静态内容,默认值为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" />
   该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性
   为 false
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
   上传文件的大小限制
     <constant name="struts.multipart.maxSize" value=“10701096"/>

 struts2配置文件分离

<include file="struts-part1.xml"/>

猜你喜欢

转载自mvplee.iteye.com/blog/2240060
今日推荐