带命名空间的action再次返回原来页面,命名空间引起的错误
2014-10-28 22:12
190 查看
今天写了一个登陆页面,这个相信对大家来说都没有难度,但是身为屌丝的我,犯贱了一次!
登陆页面表单提交,action中,我加了命名空间,详细如下:
登陆都没什么问题,但是问题是当我用户名或者密码错误的时候,我就应该重新返回登录页面,就在重新返回的时候,虽然说通过下面的方式,可以返回到指定的html文档中去
登录提交表单,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才对
解决方案是:
利用重定向去解决:配置如下
重定向配置:
不知道有没有别的方法,欢迎踢楼!
登陆页面表单提交,action中,我加了命名空间,详细如下:
<form id="loginForm" action="actionPackage/login.action" method="post"> ...此处省略... </form>
登陆都没什么问题,但是问题是当我用户名或者密码错误的时候,我就应该重新返回登录页面,就在重新返回的时候,虽然说通过下面的方式,可以返回到指定的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>这个时候,问题来了,login.html引入了外部js文件,详细如下:
<script language="javascript" type="text/javascript" src="jquery-1.8.0.min.js" />问题出在这,重新返回的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>注意:重定向时,我用了斜杠/,也就是说,要寻找的action已经不在当前的命名空间了,跳转去了别的命名空间,默认的那个!
重定向配置:
<package name="default" namespace="/" extends="struts-default"> <action name="login1"> <result>/login.html</result> </action> </package>好了,这样js的获取路径就没有之前的那个命名空间了!
不知道有没有别的方法,欢迎踢楼!
相关文章推荐
- 网页提交后,当再次返回到提交页面后,页面停留在原来的位置
- ajaxpro.2.dll 类对象未定义错误.ajaxpro.2.dll 无效 页面对象未定义 命名空间未定义
- “/”应用程序中的服务器错误。 找到了多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间来搜索匹配此请求的
- ASP.NET MVC命名空间时引起错误的解决方法
- ASP.NET MVC命名空间时引起错误的解决方法
- action 交互到带命名空间的action 还有返回的jsp
- 网页提交后,当再次返回到提交页面后,页面停留在原来的位置
- ajaxpro.2.dll 类对象未定义错误.ajaxpro.2.dll 无效 页面对象未定义 命名空间未定义
- Grails Web开发,测试过程中修改页面后,报错,返回修改前,依然报原来错误.
- 怎么解决asp.net错误:缺少using 指令或程序集引用 找不到类型或命名空间名称StringBuilder&using的用法
- "命名空间"system.web"中不存在类型或命名空间名称security"错误解决方法
- Struts2中,文件下载,XML输出等不需要返回页面的Action返回
- 原来std命名空间中使用了max变量啊
- 使用NOD32引起ASP.NET Development Server的IE页面无法显示(错误的端口号)
- 错误:CS0234: 命名空间“System”中不存在类型或命名空间名称“Linq”的解决方法
- 错误提示页面自动返回上一页
- 使用NOD32引起ASP.NET Development Server的IE页面无法显示(错误的端口号)
- 积少成多Flash ActionScript 3.0(2) - 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- .net下返回404错误页面并跳转的解决办法
- 为什么调用支付宝接口后返回是错误页面!