关于Struts2中的namespace(命名空间的问题)

最近sev7n开始学习struts2

我只能说道路是艰辛的,struts的原理看起来还是比较好懂的,但是在实际开发是的时候真是困难啊

<package extends="struts-default" name="number" namespace="/test">
<action name="first" class="com.sev7en.FirstAction" >
<result name="success">first.jsp</result>
</action>
</package>


需要注意的是既然我们配置了命名空间test

就需要把我们的first.jsp放置在WEBROOT下的一个test文件夹下面

但是在<result name="success">first.jsp</result>中不需要再次把/test加入

这是最让我迷惑的地方了


下面贴出一下其他网友的经验吧

如果在struts.xml中设定某action的命名空间 namespace="/test",如:
<package name="mywork" extends="struts-default" namespace="/test">

如果在根目录的jsp文件(如 /login.jsp)中将s:form标签的指向某action的地址设为:
<s:form action="test/login.action">

则生成的相应页面代码为:
<form id="login" οnsubmit="return true;" action="test/login.action" method="post">

当多次执行这一页面时(如每次登陆验证都不通过),则浏览器url地址中的namespace将会重复出现,如:
http://localhost:8080/webAppName/test/test/test/test/login.action


而如果将s:form标签中的指向某action的地址设为:
<s:form action="/test/login.action">

生成的相应页面代码为:
<form id="login" οnsubmit="return true;" action="/webAppName/test/login.action" method="post">

此时多次执行这一页面url地址中的namespace也不会重复出现,浏览器url地址为

http://localhost:8080/webAppName/test/login.action

运行正常。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值