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 条评论
登录 后参与评论

相关文章

来自专栏算法修养

Windows 和 Mac 系统下安装git 并上传,修改项目

首先在MAC上怎么操作。 在gitHub创立一个账户,在创立一个项目,这就不用我说了对吧。 创建完之后是这样的: ? 接下来,我们打开https://brew....

32050
来自专栏算法修养

Git 使用篇二:搭建远程服务器

一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发。 这里以Centos云服务器为...

42660
来自专栏Windows Community

New UWP Community Toolkit - RotatorTile

概述 UWP Community Toolkit  中有一个为图片或磁贴提供轮播效果的控件 - RotatorTile,本篇我们结合代码详细讲解  Rotato...

32880
来自专栏禅林阆苑

mysql 配置总结( linux & macos ) 【原创】

mysql 配置总结 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com/c...

39280
来自专栏http://www.cnblogs.com

gitlab服务器迁移

公司更换了新的服务器,需要把原先的gitlab迁移到新的服务器上. 1.迁移准备工作和思路:从a服务器迁移到b服务器,由于Gitlab自身的兼容性问题,高版本的...

1.1K180
来自专栏禅林阆苑

mysql 命令完全总结 【原创】

mysql 命令完全总结 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github.com...

360110
来自专栏Windows Community

New UWP Community Toolkit

概述 UWP Community Toolkit 是一个 UWP App 自定义控件、应用服务和帮助方法的集合,能够很大程度的简化和指引开发者的开发工作,相信广...

388110
来自专栏AI科技大本营的专栏

从15000个Python开源项目中精选的Top30,Github平均star为3707,赶紧收藏!

翻译 | AI科技大本营(ID:rgznai100) 参与 | SuiSui 继推出2017年机器学习开源项目Top 30榜单后,Mybridge AI又推出了...

48860
来自专栏算法修养

Git 使用篇一:初步使用GitHub,下载安装git,并上传项目

首先在MAC上怎么操作。 在gitHub创立一个账户,在创立一个项目,这就不用我说了对吧。 创建完之后是这样的: ? 接下来,我们打开https://b...

37660
来自专栏Windows Community

New UWP Community Toolkit - ImageEx

概述 UWP Community Toolkit  中有一个图片的扩展控件 - ImageEx,本篇我们结合代码详细讲解  ImageEx 的实现。 Image...

34070

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励