package节点是整个配置的核心部分。每个package,从语义上讲,其实代表了每一个独立的模块。在这个模块中,你可以定义隶属于这个模块的行为方式,而与其他的模块没有关系。所以,每个package都有独立的interceptor、result-type和action的定义,绝大多数的Runtime配置定义都是通过package节点实现的。接下来我们就来详细讨论一下package中的属性和子节点。

1. name

name属性为每个package设置一个唯一的标识,这个标识在所有的package定义中不能重复。

2. abstract

标识这个package的定义是一个抽象定义,也就是允许他仅包含声明式的定义,而不需要在package定义中包含action的定义。

3. extends

  通过使用extends,你可以指定本package继承另外一个package的所有的配置。当某个package继承了另外一个package的所有配置,那么你就无需对父package中已经声明过的配置定义做再次的定义。

  同时,如果重复定义父package中已声明过的配置定义,那么这些重复定义声明将覆盖父package中的相关定义。

  支持多重继承,如果A 继承 B,B继承C,A无需继承C(继承传递性)。例如:json-default继承了struts-default,开发中我们只需继承json-default(也可以同时继承两个包,用逗号隔开).

4. namespace

namespace的作用:对于action配置进行逻辑划分。

如果我们不为package节点指定namespace,Struts2默认使用一个空字符串作为默认的namespace。当然,也可以使用"/"等字符串来表示namespace。

定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action

Struts2在根据URL进行寻址的时候,使用以下的步骤:

1) 根据URL进行Namespace和ActionName的计算

2) 根据计算的得到的Namespace和ActionName查找package节点中相应配置

3) 如果查找失败,则查找Namespace为空,ActionName为整个URL的配置

struts2 package 属性说明的更多相关文章

  1. Struts2的属性驱动与模型驱动的区别

    1.Struts2的属性驱动. Struts2的属性驱动指的是在action中JSP页面的每一个form中的name都对应在action中有一个属性与之对应.看下面代码片段: <form act ...

  2. struts2属性Struts2中属性接收参数中文问题和简单数据验证

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 一:如果表单提交数据中有中文时,尽量应用post方式. 需要在Struts. ...

  3. Struts2 contentType属性列表

    Struts2 contentType属性列表 博客分类: Struts 2   'ez' => 'application/andrew-inset', 'hqx' => 'applica ...

  4. Android package属性、package name和Application ID三者的联系及区别

    package属性:在AndroidManifest.xml文件中. package name:模块结构的包名. Application ID:模块defaultConfig块下的applicatio ...

  5. Struts2中属性驱动与模型驱动

    属性驱动: 1.概念 能够利用属性驱动获取页面表单元素的内容 2.步骤 1.在action中声明属性,属性的名称和页面元素中name属性的值保持一致 2.action中的属性必须有set和get方法 ...

  6. struts2 package元素

    <package../>元素         name         必选    包名         extends     可选    继承         namespace    ...

  7. struts2 中属性驱动(其实就是struts2 action 中处理 request 的参数【old 方式servlet api 封装数据到javabean中(or beanutils)】),这里属性驱动是新方式

    1.属性驱动 a\  一般的set public class UserAction extends ActionSupport { private String username; private S ...

  8. Struts2 Package

    package 元素的所有属性及对应功能: Attribute Required Description name yes key to for other packages to reference ...

  9. struts2 package元素配置

    package 元素的所有属性及对应功能: Attribute Required Description name yes key to for other packages to reference ...

随机推荐

  1. git 命令汇总

    本地库处理 git init 初始化仓库 git clone [地址] 下载项目 git status 查看当前暂存等状态 git add 添加暂存 cat .git/config 查看git配置 l ...

  2. kubernetes搭建dashboard-v1.10.1

    一键部署脚本(或者可使用helm安装): wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/ ...

  3. JZOJ 5812. 【NOIP提高A组模拟2018.8.14】 区间

    5812. [NOIP提高A组模拟2018.8.14] 区间 (File IO): input:range.in output:range.out Time Limits: 1000 ms  Memo ...

  4. Fire Game FZU - 2150 (bfs)

    Problem 2150 Fire Game Accept: 3772    Submit: 12868Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  5. The 2016 ACM-ICPC Asia Qingdao Regional Contest

    A - Relic Discovery 签到 #include <cstdio> using namespace std; int T,n; long long ans=0; int ma ...

  6. 笔记-python-tutorial-5.data structure

    笔记-python-tutorial-5.data structure 1.      data structure 1.1.    list operation list.append(x) #尾部 ...

  7. (PowerDesigner&Sqlite)PD中设计完表后,将其导入数据库中

    本人连接过SQLServer跟SQLite Ⅰ.SQLServer,百度,转一下:http://jingyan.baidu.com/article/7f766daf465e9c4101e1d0d5.h ...

  8. main方法中sleep

    sleep(long mil); 你应该 加 休眠的时间才行 一.Thread.sleep(1000); 二.让你的class extends Thread来继承 sleep方法

  9. Intellij Idea 创建JavaWeb项目

    折腾Tomcat折腾了两个晚上,第一个晚上怎么都进不了Tomcat的首页,第二个晚上进去了,但是新建的Web项目,在浏览器中运行,总是 Error on Apache Tomcat: The requ ...

  10. HTML5——7个最牛的HTML5移动开发框架

    月的iPhoneDevCamp上写成的.创建它的一个主要动力是基于一个几乎每一个单独的iPhone开发新手都要面对的简单事实:Objective-C是一个对Web开发人员来说非常陌生的环境,并且Web ...