idea+maven+Struts2 之struts.xml中标签介绍

Posted 斌凯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 



以上是关于idea+maven+Struts2 之struts.xml中标签介绍的主要内容,如果未能解决你的问题,请参考以下文章

IDEA整合Mybatis+Struts2+Spring

IntelliJ idea中怎么配置struts2-CSDN论坛

idea+maven+Strtus2 之新建工程

Struts2实验01--HelloWorld

struts2在tomcat中的配置

照葫芦画瓢系列之 --- eclipse下使用maven创建Struts 2项目