当前位置: 首页 > news >正文

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>
    <!-- action请求默认后缀 -->
    <constant name="struts.action.extension" value="" />
    <!-- action返回结果编码.解决乱码问题 -->
    <constant name="struts.i18n.encoding" value="utf-8" />
    <!-- 修改struts.xml后,无需重启Tomcat  -->
    <constant name="struts.configuration.xml.reload" value="true"/>
     <!-- package属性介绍
        1.name      ->包的名称,可自定义,可以配置多个包
        2.namespace ->命名空间,不同模块可以指定不同的空间,必须以"/"开头
        3.extends   -> 继承,值是直接或间接的继承struts-default,它也是一个xml文件
      -->
    <package name="xiif-default" extends="json-default">
        <result-types>
            <result-type name="stringResult" class="com.tcl.basic.obj.StringResult" />
        </result-types>
        <interceptors>
            <interceptor name="trimInterceptor"
                class="com.tcl.basic.interceptor.TrimInterceptor" />
            <interceptor-stack name="deskapiStack">
                <interceptor-ref name="trimInterceptor" />
                <interceptor-ref name="defaultStack" />
            </interceptor-stack>
        </interceptors>
        <!-- 配置默认拦截器 -->
        <default-interceptor-ref name="deskapiStack" />
        <!-- 配置默认的action(package子标签,置于action标签之上).当请求的action不存在时,执行默认的default -->
        <default-action-ref name="default"/>
        <action name="default">
            <result>/index.html</result>
        </action>
    </package>
    
</struts>

======================================================================

1.解决乱码问题

          <constant name="struts.i18n.encoding" value="utf-8"/> //设置编码格式为utf-8

2. 自定义扩展名

        <constant name="struts.action.extension" value="action,,tcl"/> //struts默认扩展名是action,可以自定义

3.设置开发模式

       <constant name="struts.devMode" value="true"/> //打开开发者模式,可在出错时提供友好的错误信息提示

以上参数都是在struts.xml中配置的,我们也可以在src目录下新建一个struts.properties文件,上面三个配置都可以写成下面这样,能实现同样的作用:

      struts.i18n.encoding=utf-8

      struts.action.extension=action,,tcl

      struts.devMode=true

4.设置配置文件修改后自动加载(开发时使用)

       <constant name="struts.configuration.xml.reload" value="true"/> //修改struts.xml后,无需重启Tomcat

5.引入其他配置文件(多在团队协作开发使用)

      <include file="com/tcl/struts/user.xml"/>

6. package包(着重介绍)

<?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>
    <!-- package属性介绍
        1.name      ->包的名称,可自定义,可以配置多个包
        2.namespace ->命名空间,不同模块可以指定不同的空间,必须以"/"开头
        3.extends   -> 继承,值是直接或间接的继承struts-default,它也是一个xml文件
      -->
    <package name="login" namespace="/user" extends="struts-default">
    <!-- action 属性介绍
        1.name   ->url请求名,不需要加后缀(.action)
        2.class  ->处理url对应的java类,class要求包名+类名
        3.method ->配置处理请求的方法,默认为execute;方法必须是public String修饰的
     -->
        <action name="login" class="com.tcl.action.LoginAction" method="execute">
        <!-- result属性介绍
            1.name:->匹配请求方法的返回值,默认是success
            2.type:->结果处理类型,默认是dispatcher转发
                 chain:  链接到下一个action,执行完actionA后执行actionB<result type="chain">exit</result>
                 redirect: 重定向到jsp页面
                 redirectAction:  重定向到下一个action
         -->
        
            <result name="success">/succ.jsp</result>
            <result name="error">/login.jsp</result>
        </action>
    </package>
</struts>

7.配置默认执行的class(package子标签,置于action标签之上)

      <!-- 当action标签中没有写class属性时,默认执行这个class-->

      <default-class-ref class="com.tcl.action.LoginAction"/>

8.配置默认的action(package子标签,置于action标签之上)

     <!--当请求的action不存在时,执行默认的default-->
    <default-action-ref name="default"/>
    <action name="default">
               <result>/index.jsp</result>
    </action>

9.配置全局结果集(package子标签,置于action标签之上)

       <global-results>

             <!-- 所有的aciton中,只要action里面的方法返回了comehere字符串时,就都跳到这个a.jsp页面来 -->

             <result name="comehere">/a.jsp</result>

     </global-results>

http://www.lryc.cn/news/158673.html

相关文章:

  • 阿里巴巴API接口解析,实现获得商品详情
  • 9.(Python数模)(分类模型一)K-means聚类
  • MinIO集群模式信息泄露漏洞(CVE-2023-28432)
  • 【从零单排Golang】第十五话:用sync.Once实现懒加载的用法和坑点
  • 常见注意力机制
  • 解决报错之org.aspectj.lang不存在
  • java之SpringBoot基础篇、前后端项目、MyBatisPlus、MySQL、vue、elementUi
  • golang中如何判断字符串是否包含另一字符串
  • ONNX OpenVino TensorRT MediaPipe NCNN Diffusers ComfyUI
  • java中使用 Integer 和 int 的 含义、使用方法 及之间的区别
  • 点云从入门到精通技术详解100篇-点云的特征检测
  • DOM破坏绕过XSSfilter例题
  • 代码随想录Day_56打卡
  • 高忆管理:六连板捷荣技术或难扛“华为概念股”大旗
  • 「解析」YOLOv5 classify分类模板
  • 交换排序——冒泡排序、快速排序
  • Android 10.0 禁用adb shell input输入功能
  • cuda显存访问耗时
  • 【HTML5高级第三篇】drag拖拽、音频视频、defer/async属性、dialog应用
  • 独享IP vs. 共享IP:哪种更适合你?
  • 【Arduino27】DHT11温湿度传感器模拟值实验
  • dockerfile基于apline将JDK20打包成镜像
  • MATLAB基础-MAT文件的读写操作
  • PostgreSQL PG15 新功能 PG_WALINSPECT
  • 时序预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络时间序列预测
  • 数据结构和算法(2):向量
  • mysql 大表如何ddl
  • C++新特性:智能指针
  • SAP FI之批量修改财务凭证的BAPI
  • Spring Boot + Vue的网上商城之商品分类