首页 > 代码库 > Struts2配置文件

Struts2配置文件

一、配置struts2的过滤器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>zjs_bos</display-name>
 
  <!-- 创建struts2的过滤器 -->
  <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>

  <!--同时拦截转发数据和请求数据-->

   <dispatcher>REQUEST</dispatcher>
   <dispatcher>FORWARD</dispatcher>
  </filter-mapping>
 
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

二、Struts.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 开发者模式,在开发者模式中,

  如果jsp发送的请求数据, 在action中没有给提供相应的get和set方法,会报错java.lang.NoSuchFieldException -->
    <constant name="struts.objectFactory" value="http://www.mamicode.com/spring"></constant>

  <!-- 配置struts国际化参数,设置编码区默认的编码格式  -->
    <constant name="struts.i18n.encoding" value="http://www.mamicode.com/UTF-8"></constant>

  <!-- 配置struts国际化参数,设置message.properties路径 -->
    <constant name="struts.custom.i18n.resources" value="http://www.mamicode.com/message"></constant>

  (备注,可以在action类中,通过this.getText("usernameOrPasswordError")来获取message.properties文件中usernameOrPasswordError对应的值)

 <!-- 配置package -->

  <!--

  name属性, 理论上可以为任意值, 但是不同的package不能有相同的name属性;

  extends属性, 为固定值struts-default;

  namespace属性, 名称空间, 域action的标签的name属性一起构成action的访问路径

  -->
    <package name="basicstruts2" extends="struts-default" namespace="/">

  <!-- 配置拦截器 -->
        <interceptors>
            <interceptor name="bosLoginInterceptor" class="cn.rodge.bos.web.interceptoer.BOSLoginInterceptor">
                <param name="excludeMethods">login</param>
            </interceptor>
            
            <!-- 声明拦截器栈 -->
            <interceptor-stack name="bos">

      <!--自定义拦截器后, 默认的拦截器就不会执行了, 所以需要手动将默认拦截器栈添加上来-->
                <interceptor-ref name="bosLoginInterceptor"></interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <!-- 将bos定义为默认拦截器栈 -->

  <default-interceptor-ref name="bos"></default-interceptor-ref>

    <!--声明全局结果变量,注意全局结果变量的声明是有顺序的,不能再拦截器前面声明,不然会报错-->
        <global-results>
            <result name="login">/login.jsp</result>
        </global-results>


        <!-- 配置通过action访问jsp的路径
            class不配置的话,默认访问actionsupport(在struts的默认配置文件中有配置)
            method不配置的话,默认访问execute方法
         -->
        <action name="page_*_*">
            <!-- name不配置的话,默认访问SUCCESS对应的 -->
            <result type="dispatcher">/WEB-INF/pages/{1}/{2}.jsp</result>
        </action>
        
        <!-- 配置UserAction -->
        <action name="user_*" class="userAction" method="{1}">
            <result name="home">/WEB-INF/pages/common/index.jsp</result>
            <result name="login">/login.jsp</result>
        </action>
    </package>
</struts>

 

Struts2配置文件