struts包和命名空间


配置<package>元素时必须指定name属性,这个属性是引用该包的唯一标识。除此之后,还可以指定一个可选的extend属性,该属性值必须是另一个包得name值。指定extend属性表示让该包继承另一个包,子包可以从一个或多个父包中继承到拦截器,拦截器栈,action等配置。


配置<namespace>属性,用于指定该包对应的命名空间,如果没有配置该属性的话,则action处在默认的包空间下。配置namespace是因为同一个命名空间下不允许有同名的action。


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	
	<constant name="conststruts.devMode" value="true"></constant>
	
	<package name="default" extends="struts-default" namespace="/aa">
		<action name="LoginAction" class="com.hsit.action.LoginAction" >
			<result name="success">/welcome.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>
	<package name="aa" extends="struts-default" >
		<action name="LoginAction" class="com.hsit.action.LoginAction2" >
			<result name="success">/welcome.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>

</struts>    

上面的配置中,LoginAction处在/aa命名空间下,而LoginAction2处在默认命名空间下,要访问第一个action,url地址是  命名空间+action名。而第二个action要访问的话,直接就是action名。


除此之外,struts可以显示指定根命名空间,通过设置某个包得namespace来指定根命名空间。

如果请求为/aa/LoginAction.action,系统hi先查找/aa命名空间里名为LoginAction的action,如果在该命名空间里找到action,则使用改action处理用户请求;否则,系统将自动到默认命名空间里寻找同名的action,如果找到,则使用改action处理请求,否则报错。


<s:form action="aa/LoginAction" method="post">
			<s:textfield name="username" label="%{getText('user')}"/>
			<s:password name="password" label="%{getText('password')}"/>
			<s:submit value="%{getText('login')}"></s:submit>
		</s:form>

struts.xml配置文件如上不变。则调用com.hsit.action.LoginAction处理请求。


配置文件如果修改为如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	
	<constant name="conststruts.devMode" value="true"></constant>
	
	<package name="default" extends="struts-default" namespace="/aa">
		
	</package>
	<package name="aa" extends="struts-default" >
		<action name="LoginAction" class="com.hsit.action.LoginAction2" >
			<result name="success">/welcome.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>

</struts>    

则struts会调用com.hsit.action.LoginAction2处理用户请求

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值