今天写了一个登陆页面,这个相信对大家来说都没有难度,但是身为?丝的我,犯贱了一次!
登陆页面表单提交,action中,我加了命名空间,详细如下:
登陆都没什么问题,但是问题是当我用户名或者密码错误的时候,我就应该重新返回登录页面,就在重新返回的时候,虽然说通过下面的方式,可以返回到指定的html文档中去
<package name="actionPackage" namespace="/actionPackage" extends="struts-default"> <action name="login" class="loginAction" method="execute"> <result name="success">/WEB-INF/index.html</result> <result name="error">/login.html</result> </action> </package>
<script language="javascript" type="text/javascript" src="jquery-1.8.0.min.js"></script>
登录提交表单,url中会将actionPage这个命名空间加上去,那么重新返回login.html时,url也就自然而然的多了actionPage,导致get外部js文件时,获取路径中也多了actionPage这个明明空间,当然就获取不到这个js外部文件了!
登录时的url成了http://localhost:8080/lfdcwtjxt/actionPage/login.action
重新返回login页面时,js的获取路径就变成了http://localhost:8080/lfdcwtjxt/actionPage/jquery-1.8.0,js
这就错了,应该是http://localhost:8080/lfdcwtjxt/jquery-1.8.0,js才对
解决方案是:
利用重定向去解决:配置如下
<package name="actionPackage" namespace="/actionPackage" extends="struts-default"> <action name="login" class="loginAction" method="execute"> <result name="success">/WEB-INF/index.html</result> <result name="error" type="redirect">/login1</result> </action></package>
重定向配置:
<package name="default" namespace="/" extends="struts-default"> <action name="login1"> <result>/login.html</result> </action></package>
不知道有没有别的方法,欢迎踢楼!