- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Action的配置
Action的配置4.4.1? package的配置
通过上面的示例可以看出,Action需要在struts.xml中配置才可以使用,而且Action应该配置成为package元素的子元素,那么package元素的功能是什么呢?
?????? package元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的package继承,比如前面示例中配置的“package name=helloworld? extends=struts-default”,helloworld这个包就继承了struts-default这个包。
?????? package元素有如下属性:
name:包的名称。必须配置
extends:要继承的包,后面配置的是被继承的包的名称。可选
namespace:包的命名空间。可选
abstract:定义包为抽象的,也就是不能包含Action的定义。可选
上面的属性中name和extends在前面已经示例过了,接下来看看另外两个属性的应用。
1:namespace
namespace配置的是包的命名空间,同一个命名空间里面不能有同名的Action,当然不同的命名空间里面是可以有同名的Action的。类似于Java的包的功能,namespace可以有效的防止action重名的冲突,因为配置了namespace后,在访问action的时候就需要添加namespace来作为action的前缀。
如果不配置namespace,表示是默认的namespace,那么访问的时候不需要添加namespace前缀。比如前面HelloWorld的示例,struts.xml的配置如下:
?
java代码:
查看复制到剪贴板打印
?xml?version=1.0?encoding=UTF-8????
!DOCTYPE?struts?PUBLIC??
????-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN??
????/dtds/struts-2.0.dtd??
??
struts??
????constant?name=struts.devMode?value=true?/??
????constant?name=struts.locale?value=zh_CN/??
????constant?name=struts.i18n.encoding?value=gb2312/??
??
????package?name=helloworld??extends=struts-default??
????????action?name=helloworldAction?class=cn.javass.hello.struts2impl.action.HelloWorldAction??
????????????result?name=toWelcome/s2impl/welcome.jsp/result??
????????/action??
/package??
/struts??
观察里面加粗的那句,也就是package元素的定义,里面是没有配置namespace的,因此在访问的时候,是直接在webcontext下面写要访问的action的名称的,示例如下:
?
java代码:
查看复制到剪贴板打印
form?action=/helloworld/helloworldAction.action?method=post??
????……??
/form??
其中“/helloworld”是webcontext。
如果配置了namespace,那么访问的时候是必须要添加namespace前缀的,配置namespace的时候“/”表示namespace的根。示例如下:
?
java代码:
查看复制到剪贴板打印
……省略了??
package?name=hello?namespace=/javass?extends=struts-default??
????????action?name=helloworldAction?class=cn.javass.hello.struts2impl.action.HelloWorldAction??
????????????result?name=toWelcome/s2impl/welcome.jsp/result??
????????/action??
/package??
那么访问的时候就需要加上namespace,示例如下:
?
java代码:
查看复制到剪贴板打印
form?action=/hell
文档评论(0)