struts2基本配置详解

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓↓↓↓ Struts2框架常用配置详细 ↓↓↓↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>




<!-- 引入位于Struts2框架核心包下的2.3.dtd约束文件 -->

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">


<!-- 创建在dtd约束文件中定义的根标签 -->
<struts>

11111111111111111111111111 常量 11111111111111111111111111111

<!-- ◆自定义常量配置◆ -->

<!-- 
常用的struts-default常量定义文件中的常用的常量

struts.i18n.encoding  === 定义编码集,默认是UTF-8,只是作用在post提交
struts.multipart.parser === 解析上传文件
struts.multipart.saveDir === 缓存文件的目录
struts.multipart.maxSize === 设置上传文件的大小,默认是2M
struts.action.entension === 设置访问的后缀,默认是action,和空格 
struts.enable.dynamicMethodinvovation === 动态方法调用,默认是true,
    在上线运行的时候···必须要关闭,
    因为不安全。
    语法;访问的路径加 !方法名
struts.ui.theme === strus页面的主体  

◆◆◆◆◆注;配置常量基本都是使用<constant>标签
而这个标签的name属性是配置的常量名
value是配置的值

书写;
<constant name="default.properties文件中的常量" value="值"></constant>

-->

<!-- 常量;编码集 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>

<!-- 常量;访问后缀 -->
<constant name="struts.action.extension" value="do,,"></constant>

<!-- 常量;动态方法调用  语法  在访问后缀加上     !方法名   上线关闭,不安全  -->
<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>

<!-- 设置上传文件的缓存目录,默认是在服务器下的缓存目录或在系统下的临时文件中 -->
<constant name="struts.multipart.saveDir" value="f:/"></constant>

<!-- 设置最大的上传文件的大小 ,默认是 2M-->
<constant name="struts.multipart.maxSize" value="2222222222"></constant>


22222222222222222222222222 <package>细节 2222222222222222222222222222

<!-- 
包;是用于区分同名的action,和便于管理的

name 是这个包的唯一标识符
extends 基本是继承struts-default这个包,这个包定义了大量的元素,
只有继承了这个包才可以使用这个包的元素

abdstract 抽象包都是用于做通用配置的,
因为如果很多的action中要使用到这个拦截器则使用抽象包
而抽象包是没有action标签和namespace属性的。
因为是在本配置文件中做通用配置的。
-->

<package name="mydefault" extends="struts-default" abstract="true">
<!-- 
interceptors 是用于区分相同name的拦截器和便于管理的,和包的作用类似

-->
<interceptors>
<!-- 
interceptor 是定义具体的拦截器类的

name 是这个拦截器配置的唯一标识符
class 是对应的拦截器路径
-->
<interceptor name="inter1" class="com.stuts._02interceptorss._01Intercepator1"></interceptor>
<interceptor name="inter2" class="com.stuts._02interceptorss._02Interceptor2"></interceptor>
<!-- 
interceptor-stack是将所有的拦截器集中的一起使用,
因为在开发的过程中可能不止需要一个拦截器直接起作用的。
name 是这个拦截器栈的名

-->
<interceptor-stack name="mystack">
<!-- 
interceptor-ref 是定义具体在这个栈中起作用的拦截器,执行的顺序按照这里的顺序

当使用了自定义的拦截器则会将Struts2提供的拦截器给覆盖了,
一般都会再次引用会Struts2提供的拦截器,并且会放在第一位,
因为放在第一位使得自定义拦截器可以使用到如参数拦截器得到的数据等
-->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="inter1"></interceptor-ref>
<interceptor-ref name="inter2"></interceptor-ref>
</interceptor-stack>
</interceptors>
</package>


333333333333333333333333 <package>基本配置 3333333333333333333333333333333

<!-- 
创建一个package,用于存放业务处理类方法,
也是避免多个action的重名和便于管理

name 是这个package的唯一标识符,是不可选的
extends 继承这个Struts2框架下的struts-default文件,
才可以使用这个默认文件的元素
namesapce 是访问这个包的域名空间,是可选的,默认是 / 
-->
<package name="stack" extends="struts-default" namespace="/stack">



------------------------------------------------ 视图标记全局配置 ------------------------------------------------------------------

<!-- 
<global-result>标签是定义一个全局的业务处理方法的处理

位于<package>下的只是作用这个在<package>下的所有<action>
-->
<global-results>
<result name="input">/error.jsp</result>
</global-results>


-------------------------------------------------- <action>配置 ----------------------------------------------------------------------

<!-- 
action 是用于标识一个类的业务处理方法的

name 是用于表示这个action,
在这个包下的唯一标识符,是不可选的,
也是访问这个action的域名空间。

如果有多个name相同的action则使用后面定义的那个

class 是这个业务处理方法的类的路径,
包名+类名,是可选的,默认是ActionSupport

method 是这个业务处理方法的名,
是可选的,默认是execute()

另;而在<action>标签中有一个通配符*在访问的时候,
可以加上也可以不加上,如果加上在必须要是这个确定访问的方法名

而在method属性中如果要引用这个通配符则使用{num}指定引用第几个通配符

-->
 
<action name="stack_*" class="com.strurs2.proctice._01ValueStack" method="{1}">


----------------------------------------------- <param>标签解析 ------------------------------------------------------------------------
 
 
<!-- 
    <param>这个标签类似于web.xml文件中的局部变量配置
     
    而这个也叫做action属性的注入,
    而可以通过这个值时刻修改,
        当时name必须是和Action类定义的,
        成员变量名一样而这个成员变量,
        必须要提供一个setter方法。
  -->
  
 <param name="test">/xxx</param>
 

----------------------------------------------- <result>标签解析 ---------------------------------------------------------------------------
 
 
 
<!-- 
   result 是根据这个业务处理方法返回的结果进行操作

name 是这个业务处理方法返回的结果,
是可选的,默认是SUCCESS

type 是这个业务处理方法的类型(方式)
是可选的,默认是dispatcher(转发)

常用的类型;
  stream  --- 流
  
  dispatcher --- 转发
  chain --- 转发到别的Action类中
  
  redirect --- 重定向
  redirectAction --- 重定向到别的Action类中
  plainText --- 以纯文本的方式写出


◆注;可以参考Struts2框架下的core核心包下
的struts-default.xml文件定义的type属性值  

内容   是这个业务处理方法返回的结果后的操作
-->
<result>/stack.jsp</result> 

----------------------------------------------------------------------------------------------------------------------------

</action>
</package>
</struts>

猜你喜欢

转载自blog.csdn.net/su_levi_wei/article/details/78192590