struts配置【一】
Struts 2 环境
下载类库:http://192.168.16.240/source/struts-2.0.11.1-lib.zip
完整类库列表
antlr-2.7.2.jar
commons-beanutils-1.6.jar
commons-chain-1.1.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
commons-validator-1.3.0.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
oro-2.0.8.jar
struts-core-1.3.5.jar
struts2-codebehind-plugin-2.0.11.1.jar
struts2-config-browser-plugin-2.0.11.1.jar
struts2-core-2.0.11.1.jar
struts2-jasperreports-plugin-2.0.11.1.jar
struts2-jfreechart-plugin-2.0.11.1.jar
struts2-jsf-plugin-2.0.11.1.jar
struts2-pell-multipart-plugin-2.0.11.1.jar
struts2-plexus-plugin-2.0.11.1.jar
struts2-sitegraph-plugin-2.0.11.1.jar
struts2-sitemesh-plugin-2.0.11.1.jar
struts2-spring-plugin-2.0.11.1.jar
struts2-struts1-plugin-2.0.11.1.jar
struts2-tiles-plugin-2.0.11.1.jar
tiles-api-2.0.4.jar
tiles-core-2.0.4.jar
tiles-jsp-2.0.4.jar
xwork-2.0.4.jar基础类库列表
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar基础配置
WEB.XML
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<include file="example.xml"/>
<!-- Add packages here -->
</struts>配置文件
struts.xml 位置:classes下 配置 Action
package
struts对配置的组织结构
类似于java package
属性:
* name : 包的名字,唯一标示
extends: 继承
namespace:命名空间
abstract: 抽象申明namespace
1 default namespace ""
2 root namespace "/"
3 action 搜索的顺序
当前namespace ---一级一级向上搜索
Web应用的请求路径被视为namespace
4 访问 /aaa.action的时候的搜索的顺序
"/" ---> ""
5 namespace 没有目录信息
6 package 包含0 - N 个 action
<pre>
;Action:<pre>
name: 唯一标示 name.action ---> action name
class:实现类 继承actionsupport的类
method:调用方法 动态调用的方法名称Result
name: 用来匹配action的返回值
type: 是result-type 进行预定义的/自定义的 常用dispatcher,转发
<result-types>
<result-type name="dispatcher" class ="" default="true" ></result-type>
</result-types>
特殊位置:
<global-results>
<result name=""></result>
....
</global-results>
特殊参数:
<result name="next_opertor" >${var_name}</result>
var_name 必须是action里面的一个私有属性,并且有get/set方法
必须符合bean的命名规则: 小写开头
set/get大写开头的属性include
只能放在struts 标签的下一级
用来引入其他的struts配置文件
file = " "
被他引入xml文件是一个标准的struts配置interceptors = > 拦截器
<interceptors>
<interceptor name="" />constants
<constant name="" value="" />
可以完成
struts.properties 所完成的工作
可以完成
constant 所完成的工作struts.properties
配置struts特性(动态方法调用,虚拟机)struts-default.xml struts...jar里面,----〉零配置 struts-default.vm 模板
Action
I18N/I10N
拦截器
拦截器在struts 2接收到请求之后,抵达Action之前 以及离开Action之后 发挥作用
抵达Action之前,可以处理参数(文件上传,struts2有内置拦截器),或者拦截请求
离开Action之后,可以处理Action返回的Result(嵌套模板的拦截器)
配置拦截器
struts自己提供了缺省的拦截器,
拦截器的使用的第一步 ,配置、可以理解为登记
拦截器的使用的第二步 ,配置、定义缺省interceptor-stack 、或者 直接指明 某个Action使用的拦截器
使用拦截器的时候以Stack为单位
拦截器可以被覆盖,采取就近配置的拦截器:: namespace范围 或者 action范围内部
拦截器之行的先后顺序:根据配置文件内容,由上至下(抵达Action之前),由下至上(离开Action之后)
注册Interceptors:
<interceptors>
<interceptor name="name_1"
encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="" >
<ref local ="another_bean_id" />
</property >
<property name ="Field_Name" >
</propertie>
</bean>
</beans>find action
search action with classname in applicationcontext.xml
use a action class's instance defined by applicationcontext.xml
完成一個Struts2 with Spring的IOC程序的步驟
定義 Struts2中的Action 【使用 applicationContext.xml中的bean_id作為我們的Action的class】
<action name="CatchIocDataMethod"
value="spring" />
所有的在struts.properties文件中出現的常量都可以使用這種方式在struts.xml中進行覆蓋提示信息
Initializing Struts-Spring integration ** struts2-spring-plugin 被使用后的提示信息
Bean factory for application context ..... Spring Ioc容器成功初始化后的信