前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >struts核心配置文件详解(package)

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

原创
作者头像
爱撒谎的男孩
发布2018-05-10 18:52:56
7511
发布2018-05-10 18:52:56
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

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定义

范例

代码语言:javascript
复制
<!—指定了继承自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名字
代码语言:javascript
复制
​
<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>

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • struts核心配置文件详解(package)
    • 包(package)
      • 属性
      • 范例
      • 引入另一个包中的action
      • 包含另外一个包(include)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档