Heim > Web-Frontend > HTML-Tutorial > 带命名空间的action再次返回原来页面,命名空间引起的错误_html/css_WEB-ITnose

带命名空间的action再次返回原来页面,命名空间引起的错误_html/css_WEB-ITnose

WBOY
Freigeben: 2016-06-24 11:55:17
Original
863 Leute haben es durchsucht

今天写了一个登陆页面,这个相信对大家来说都没有难度,但是身为?丝的我,犯贱了一次!

登陆页面表单提交,action中,我加了命名空间,详细如下:

Nach dem Login kopieren
...此处省略...

登陆都没什么问题,但是问题是当我用户名或者密码错误的时候,我就应该重新返回登录页面,就在重新返回的时候,虽然说通过下面的方式,可以返回到指定的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>
Nach dem Login kopieren
这个时候,问题来了,login.html引入了外部js文件,详细如下:
<script language="javascript" type="text/javascript" src="jquery-1.8.0.min.js"></script>	
Nach dem Login kopieren
问题出在这,重新返回的login.html,浏览器get获取js文件时,由于js文件获取地址是相对于url的,这个时候,问题真正出现了!

登录提交表单,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>
Nach dem Login kopieren
注意:重定向时,我用了斜杠/,也就是说,要寻找的action已经不在当前的命名空间了,跳转去了别的命名空间,默认的那个!

重定向配置:

<package name="default" namespace="/" extends="struts-default">    	<action name="login1">			<result>/login.html</result>		</action></package>
Nach dem Login kopieren
好了,这样js的获取路径就没有之前的那个命名空间了!

不知道有没有别的方法,欢迎踢楼!




Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage