专栏首页码猿技术专栏struts核心配置文件详解(package)
原创

struts核心配置文件详解(package)

struts核心配置文件详解(package)

包(package)

  • 本人独立博客https://chenjiabing666.github.io
  • 在核心配置文件中需要配置<package>
  • <package>元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承

属性

  • name
    • 这是一个必填的属性,指定包的名字,便于其他的包引用,因为其他的包可以继承这个包
  • extends : 该属性是一个选择属性,表示继承其他的包,但是我们一般都会继承struts-default
    • 如果我们学到了处理json数据的时候,我们将会继承处理json的包
  • namespace :该属性是一个可选属性,指定该包的命名空间,默认的是“/”,以为一个配置文件中可能有相同名字的action,如果配置不同的namespace,那么就可以配置相同的action的名字
    • namespace配置的是包的命名空间,同一个命名空间里面不能有同名的Action,当然不同的命名空间里面是可以有同名的Action的。类似于Java的包的功能,namespace可以有效的防止action重名的冲突,因为配置了namespace后,在访问action的时候就需要添加namespace来作为action的前缀。如果不配置namespace,表示是默认的namespace,那么访问的时候不需要添加namespace前缀。
    • 比如有一个项目为Web1,在struts.xml的<package namespace = "/student">,这个包的下面有一个<action name ="add">,那么我们要访问这个action使用的url为:http://localhost:8080/Web1/student/add.action
  • abstract:这是一个可选属性,表示这个包是否是抽象的,抽象包不能包含action定义

范例

<!—指定了继承自strtus-default这个类,namespace指定了命名空间,那么当其中的action访问的时候要必须使用如下:http://localhost:8080/web1/user/*--!>
<package name="Login" extends="struts-default" namespace="/user"></package>

引入另一个包中的action

  • 需求: 前面我们都是跳转到指定的视图,但是我们也是可以跳转到指定的action,但是这个要跳转的action和当前的action不是一个包中的。
  • 此时我们就需要在当前包中引入另外一个包中的action,那么我们可以如下设置
    • <param name="namespace">中的值为另外一个包的namespace
    • <param name="actionName">中的值为需要跳转到的action名字
​
<package name="Login" extends="struts-default" namespace="/">
        <action name="login" class="com.action.LoginAction">
            <result name="success" type="chain">
            <!-- namespace指定另外一个包中的namespace,actionName指定action的名字 -->
                <param name="namespace">/user</param>
                <param name="actionName">regist</param>
            </result>
        </action>
​
</package>
​
<package name="Regist" extends="struts-default" namespace="/user">
            <action name="regist" class="com.action.RegistAction">
            <result name="success">JSP/success.jsp</result>
        </action>
</package>
​

包含另外一个包(include)

  • 一个项目中的配置文件中可能需要定义很多个package和action,那么都写在一个xml文件中,不免有些混乱,因此需要使用include包含其他的配置文件,相当于jsp文件中的<jsp:include>,要注意的是配置文件都要放在项目的src目录下
    • <include file=”user.xml”></include>

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Struts2核心配置文件(package)

    爱撒谎的男孩
  • struts核心配置文件详解(result配置)

    <package name="Login" extends="struts-default" namespace="/"> ​ <action name...

    爱撒谎的男孩
  • 设计模式之桥接模式

    爱撒谎的男孩
  • 【一天一大 lee】单词接龙 (难度:中等) - Day20201105

    给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则:

    前端小书童
  • Canvas 图片绕边旋转的小动画

    /** * 图片绕边旋转的小动画 */ function initDemo10() { var canvas = document.getEleme...

    就只是小茗
  • (Leetcode 2021 刷题计划) 341. 扁平化嵌套列表迭代器

    给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。

    windism
  • ASP.NET Core中使用Protobuf从入门到实战

    跟着阿笨一起玩NET
  • centos克隆linux虚拟机的完整步骤分享

    当一个Linux完全设置完成以后,就可以使用克隆的方式来在短时间内创建出多个Linux来;本文将给大家详细介绍关于centos克隆linux虚拟机的相关内容,下...

    砸漏
  • centos克隆linux虚拟机的完整步骤分享

    当一个Linux完全设置完成以后,就可以使用克隆的方式来在短时间内创建出多个Linux来;本文将给大家详细介绍关于centos克隆linux虚拟机的相关内容,下...

    砸漏
  • 响铃:中美对比走错了道,企业级市场有自己的“入口”

    本来,在PC互联网早期,中国信息化领域里2B与2C两个市场齐头并进、难分高下。然而,随着随着个人互联网尤其是移动互联网的快速发展,2C的发展一骑绝尘,将前者远远...

    曾响铃

扫码关注云+社区

领取腾讯云代金券