strut2 学习笔记 -- form表单每次请求时数据非法时,浏览器的URL都会发生变化

来源:互联网 发布:手机腾讯视频网络异常 编辑:程序博客网 时间:2024/06/06 02:42

问题
   form表单请求采用strut2.3框架
   一个表单请求前URL是: http://127.0.0.1:8999/IHWSM/newbie/activation.do,如果输入的表单数据错误,后台会将页面转到输入页面并输出错误信息,如果输入正确,则转到下一页。现在的问题是每次输入错误,转到输入页时,浏览器的URL都会发生变化:
   第一次时URL变成:http://127.0.0.1:8999/IHWSM/newbie/newbie/activation.do
   第二次时URL变成:http://127.0.0.1:8999/IHWSM/newbie/newbie/newbie/activation.do
   第三次时URL变成:http://127.0.0.1:8999/IHWSM/newbie/newbie/newbie/newbie/activation.do
   以此类推,每次URL都会增加一级newbie目录
原因:
   经过检查,此页面中提交的From表单请求action的值使用了相对路径:newbie/activation.do。
如果采用相对路径,第一次请求前系统会认为自己的路径是相对于http://127.0.0.1:8999/IHWSM/newbie,会将“newbie/activation.do”,加到此URL的末极后面,请求的URL就是http://127.0.0.1:8999/IHWSM/newbie/newbie/activation.do。第二次请求前浏览器url变成http://127.0.0.1:8999/IHWSM/newbie/newbie/activation.do,此时系统认为相对于http://127.0.0.1:8999/IHWSM/newbie/newbie,则请求的URL变成了http://127.0.0.1:8999/IHWSM/newbie/newbie/newbie/activation.do以此类推,就出现以上的情况。
解决方法
   解决方法很简单,只需要将from的请求action改为绝对路径就可:${pageContext.request.contextPath}/newbie/activation.do。