如何配置并解析Java Struts2中的package元素实例?

2026-04-30 06:292阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计619个文字,预计阅读时间需要3分钟。

如何配置并解析Java Struts2中的package元素实例?

包元素的所有属性及对应功能:- `Attribute`:属性名- `Required`:是否必须- `Description`:描述- `name`:是,用于其他包引用包名,避免在继承时出现重复- `extends`:否,继承包的行为

package 元素的所有属性及对应功能:

Attribute Required Description name yes key to for other packages to reference ---包名称,用来让别的包继承时使用不能有重复 extends no inherits package behavior of the package it extends -----当前包所要继承的父包,继承之后,当前包拥有父包中所定义的任意类、拦截器等 namespace no 用于区分包中相同的类 abstract no declares package to be abstract (no action configurations required in package)定义当前包为一个抽象的包也就是说不能有action元素在当前包中

如何配置并解析Java Struts2中的package元素实例?

例子:

假如我有以下的配置段落

<struts> <package name="p1" extends="struts-default"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> <action name="login1" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> <package name="p2" extends="struts-default" namespace="/testNameSpace"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> </struts>

说明:

a、 包p1没有定义namespace,说明p1用的是默认空间""

现在有下面的请求:

1、/工程名/login.action

------这个请求对应p1包下的action name=login

2、/工程名/testNameSpace/login.action

-----这个请求对应p2包下的action name=login

3、/工程名/testNameSpace/login1.action

----这个请求是请求p2包下的信息的,如果struts在检索了p2包下的所有action后没有检索到当前请求的login1,这时struts会检索前一个命名空间,这里是默认空间下是否有当前请求,检查发现存在login1就得到当前检索

这里我有个个人的建议:

无论你的namespace配置或者没配置,也无论配置啥样,你在写跳转的url的时候请你也把

‘/工程名/'带上,写成这样:/工程名/命名空间1/命名空间2/actionName.action这样写能保证路径的正确性,当然如果你在写跳转的时候不发晕,可以视你的配置情况加或者不加这个!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

本文共计619个文字,预计阅读时间需要3分钟。

如何配置并解析Java Struts2中的package元素实例?

包元素的所有属性及对应功能:- `Attribute`:属性名- `Required`:是否必须- `Description`:描述- `name`:是,用于其他包引用包名,避免在继承时出现重复- `extends`:否,继承包的行为

package 元素的所有属性及对应功能:

Attribute Required Description name yes key to for other packages to reference ---包名称,用来让别的包继承时使用不能有重复 extends no inherits package behavior of the package it extends -----当前包所要继承的父包,继承之后,当前包拥有父包中所定义的任意类、拦截器等 namespace no 用于区分包中相同的类 abstract no declares package to be abstract (no action configurations required in package)定义当前包为一个抽象的包也就是说不能有action元素在当前包中

如何配置并解析Java Struts2中的package元素实例?

例子:

假如我有以下的配置段落

<struts> <package name="p1" extends="struts-default"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> <action name="login1" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> <package name="p2" extends="struts-default" namespace="/testNameSpace"> <action name="login" class="com.example.action.Login"> <result>/success.jsp</result> </action> </package> </struts>

说明:

a、 包p1没有定义namespace,说明p1用的是默认空间""

现在有下面的请求:

1、/工程名/login.action

------这个请求对应p1包下的action name=login

2、/工程名/testNameSpace/login.action

-----这个请求对应p2包下的action name=login

3、/工程名/testNameSpace/login1.action

----这个请求是请求p2包下的信息的,如果struts在检索了p2包下的所有action后没有检索到当前请求的login1,这时struts会检索前一个命名空间,这里是默认空间下是否有当前请求,检查发现存在login1就得到当前检索

这里我有个个人的建议:

无论你的namespace配置或者没配置,也无论配置啥样,你在写跳转的url的时候请你也把

‘/工程名/'带上,写成这样:/工程名/命名空间1/命名空间2/actionName.action这样写能保证路径的正确性,当然如果你在写跳转的时候不发晕,可以视你的配置情况加或者不加这个!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。