Struts2-配置文件详解

来源:互联网 发布:erp软件好学吗 编辑:程序博客网 时间:2024/06/16 12:01

       Struts2配置文件涉及到主要有两个Struts.xml和web.xml,web.xml实现过滤器的配置,Struts配置访问的包,Action,方法和结果处理。


    1. web.xml的配置:

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

    2. Struts.xml配置详解:


    1)属性介绍:


        package属性

            


    <action>属性

                  

     

    <result> 属性

                

     对应的type类型:

名字

说明

chain

用来处理Action

dispatcher

用来转向页面,通常处理JSP,这是默认的结果类型

freeMarker

处理FreeMarker模板

httpHeader

用来控制特殊的Http行为

redirect

重定向到一个URL

redirect-action

重定向到一个Action

stream

向浏览器发送InputSream对象,通常用来处理文件下载

velocity

处理Velocity模板

xslt

处理XML/XLST模板

plaintext

显示原始文件内容,例如文件源代码

tiles

结合Tile使用


    2)配置实例:

<!--命名空间是为了保证不同包里面可以有相同的action名字<package name="defult" extends="struts-default" namespace="/manage"><action name="login" class="com.web.action.LoginAction"><result name="success">/success.jsp</result><result name="error">/error.jsp</result></action><!--为每一个跳转方法提供action--><action name="userLogin" class="org.xx.web.user.LoginAction" <span style="COLOR:#ffffff">method="login"</span><result>…</result></action><action name="regist" class="org.xx.web.user.LoginAction" <span style="COLOR:#ffffff">method="regist"</span><result>…</result></action><!--action的name,class,method都可以使用通配符--><action name="user_*" class="com.xy.web.user.UserAction" method="{1}"><result>…</result><!--动态返回结果--><result name="next" type="redirect-action">${nextAction}</result> </action></package>

     如上,<actionname=user_*>定义一系列请求URLuser_*.action模式的逻辑Action。同时method属性值为一个表达式{1},表示它的值是name属性值中第一个*的值。例如:用户请求URLuser_login.action时,将调用到UserAction类的login方法;用户请求URLuser_regist.action时,将调用到UserAction类的regist方法。


    3)分解配置:struts2的配置文件可 以分解成多个,需要在struts.xml中包含其他配置文件

<struts><include file="struts-default.xml"><include filter="struts-user.xml"><struts>


    4)常量配置

<struts><constant name="struts.custom.i18n.resources" value="messagges"/><!--表示指定了资源文件的放置在classes目录下,基本名是messages,则在classes目录下您就应该放置类似messages_zh_CN.properties,message_en.properties名的文件。或者直接可以在value中设置为GBK等等。 --><constant name="struts.devMode" value="true"/><!--配置开发者模式,修改配置后不用重新启动--></struts>

    5)异常处理配置

<struts><packate name="my" extends="struts-defult" ><global-results><!--逻辑异常,映射到/exception.jsp页面--><reuslt name="sql">/exception.jsp</result></global-results><globa-exception-mappings><!--当action抛出sqlexception异常时,转入名为sql的结果--><exception-mapping exception="java.sql.SQLExcption" result="sql"/><global-exception-mappings></struts>


    6)拦截器配置

  拦截器是AOP的编程思想,作用:

  1. 进行权限控制
  2. 跟踪日志(记录每个浏览者请求的每个Action
  3. 跟踪系统的性能瓶颈(记录每个action开始处理时间和结束处理时间,得到耗时较长的Action

     

<interceptors>    <interceptorname="拦截器名"class="拦截器类"/>    <interceptor-stackname="拦截器栈名">        <interceptor-refname="拦截器名">    </interceptor-stack></interceptors><interceptors><interceptor name="autority" class="lee.AuthorityInterceptor"/><interceptor name="log" class="lee.LogInterceptor"/><interceptor-stack name="authorityandlog"><interceptor name="autority"/><interceptor name="log"/></interceptor-stack></interceptors><!--在action使用拦截器--><action name="myaction" class="lee.MyAction"><result name="sucess">…</result><interceptor-ref name="authorityandlog"/></action>


    7)其他配置

      

      默认Action执行的class配置<defult-class-ref>:<defult-class-ref class="org.action.LoginAction"/>

      

  包范围内所有action执行的拦截器配置<default-interceptor-ref>:<default-interceptor-refname="defaultStack"/>


0 0