zoukankan      html  css  js  c++  java
  • idea+maven+Struts2 之struts.xml中标签介绍

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
            "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
        <!--修改struts action访问时的后缀,默认为.action;可以省略;多个可以使用英文逗号隔开-->
        <constant name="struts.action.extension" value="action,do,html"></constant>

        <!--include节点是Struts2中组件化的方式,可以将每个功能独立到一个xml配置文件中,
       然后通过include节点引用-->
        <include file="/struts_index.xml"></include>
    
         <!--package提供了将多个Action组织为一个模块的方式
             package的名字必须是唯一的package可以扩展 当一个package扩展自另一个
             package的时候package会在本身配置的基础上加入扩展的package的配置父package
             必须在子package前配置
             name:package名称
             extends:继承的父package名称
             abstract:设置package的属性为抽象的package不能定义action
             namespace:定义package命名空间 该命名空间影响url的地址,例如:
             namespace="/test" 那么访问路径为http://localhost:8080/ssh/test/login
             其中后缀.action可以省略
             -->
        <package name="null" extends="struts-default" namespace="/test">
            <interceptors>
                <!--定义拦截器
                    name:拦截器名称
                    class:拦截器类路径
                    -->
                <interceptor name="timer" class="com.zxr.timer"></interceptor>
                <interceptor name="logger" class="com.zxr.Logger"></interceptor>
                <!--定义拦截器栈-->
                <interceptor-stack name="mystack">
                    <interceptor-ref name="timer"></interceptor-ref>
                    <interceptor-ref name="logger"></interceptor-ref>
                </interceptor-stack>
            </interceptors>
            <!--定义默认的拦截器每个Action都会自动引用,
            如果Action中引用了其它拦截器 默认拦截器将无效-->
            <default-action-ref name="login"></default-action-ref>
    
            <!--全局results配置-->
            <global-results>
                <result name="input">/error.jsp</result>
            </global-results>
    
            <!--
            Action配置一个Action可以被多次映射(只要action配置中的name不同)
            name:action名称
            class:对应的类的路径
            method:调用Action中的方法
            -->
            <action name="login" class="com.zxr.action.LoginAction" method="success">
                <!--引用拦截器
                name:拦截器名称或拦截器栈名称
                <interceptor-ref name="timer"></interceptor-ref>
                -->
    
              <!--  节点配置
                name:result名称 和Action中返回的值相同
                type:result类型 不写则选择superpackage的type struts-default.xml中默认的type
                -->
                <result name="success">/jsp/success.jsp</result>
    
                <!--参数设置
                name:对应Action中的get/set方法
                -->
                <param name="url">http://www.sina.com</param>
    
            </action>
    
        </package>
        <package name="demo" namespace="/" extends="struts-default">
    
            <!--配置默认的action-->
            <default-action-ref name="index"></default-action-ref>
            <action name="index">
                <result>/jsp/error/error.jsp</result>
            </action>
    
    
            <!--没有指定action中的方法,调用action中的默认方法execute-->
            <action name="demoAction" class="com.zxr.action.IndexAction">
                <result name="success">/jsp/index.jsp</result>
            </action>
            <!--指定方式调用action中的方法通过 method="对应的方法" 指定所要调用的方法-->
            <action name="addAction" class="com.zxr.action.IndexAction" method="add">
                <result name="add">/jsp/add.jsp</result>
            </action>
            <!--使用!调用action中的方法 http://localhost:8080/gthAction!add.action
              struts2 2.5版本必须配置 <allowed-methods>add,edit</allowed-methods> 否则无法通过匹配符访问
              【一般不推荐使用此方法】
            -->
            <action name="gthAction" class="com.zxr.action.IndexAction">
                <result name="add">/jsp/add.jsp</result>
                <result name="edit">/jsp/edit.jsp</result>
                <result name="success">/jsp/success.jsp</result>
                <allowed-methods>add,edit</allowed-methods>
            </action>
            <!--使用通配符调用action中的方法 【提倡使用】
                *表示匹配的参数
                {1}表示匹配第一个参数
                struts2 2.5版本必须配置 <allowed-methods>add,edit</allowed-methods> 否则无法通过匹配符访问
            -->
            <action name="tpfAction_*" class="com.zxr.action.IndexAction" method="{1}">
                <result name="add">/jsp/{1}.jsp</result>
                <result name="edit">/jsp/{1}.jsp</result>
                <result name="success">/jsp/index.jsp</result>
                <allowed-methods>add,edit</allowed-methods>
            </action>
             <!--通过全局通配符的方式动态的调用action和action中的方法 【提倡使用】
              第一个匹配符必须和action中类名相同
              http://localhost:8080/Index_add    Index为IndexAction的Index ;add为IndexAction中的方法
             -->
            <action name="*_*" class="com.zxr.action.{1}Action" method="{2}">
                <result name="add">/jsp/{2}.jsp</result>
                <result name="edit">/jsp/{2}.jsp</result>
                <result name="success">/jsp/index.jsp</result>
                <allowed-methods>add,edit</allowed-methods>
            </action>
    
        </package>
    
        <!--使用!调用方法时必须添加此配置
         访问方式:
        -->
        <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    
    
    </struts>
  • 相关阅读:
    分布式爬虫
    前端页面展示
    fillter根据value来匹配字段
    element ui 怎么去修改el-date-picker的时间
    element ui,input框输入时enter健进行搜索
    element ui 里面的table怎么弹出一个框让表中数据点击出现弹框
    修改数据结构记录,将同级数据改成父子集数据
    h5的复制功能的使用,Clipboard.js的使用,主要是在app里面使用
    在安卓手机下按钮会悬浮在键盘上,怎么解决vue.js
    last-child为啥不生效
  • 原文地址:https://www.cnblogs.com/binkai/p/9975104.html
Copyright © 2011-2022 走看看