大家好,我在做毕业项目的时候 遇到一些问题  想请教下一下   关于STRUTS 的  比如我做了个 注册页面reg.jsp,用户填写一些信息之后点击提交,然后通过转发到RegAction经过一系列的验证等等,成功后跳转到success.jsp,将提交的一系列信息再显示出来,如果失败,就跳转到原来的reg.jsp页面,提示错误后,在重新填写  但是我遇到这样的问题:
 1,如果我注册成功后,通过跳转到了success页面,但是浏览器的地址栏还是 regUser.htm(这是我在action-mapping里配置的名字),然后我点击刷新的话,就会弹出对话框说是要重新发送数据之类的,我觉得这个和我们在网上常见的注册是不同的,应该怎么解决?
2,就是我想在注册成功之前,检测reg.jsp提交的username这个字段,如果username在数据库中有了,返回提示并且重新填写,如果没有则继续..但返回的时候,我用的是一个<forward name="" path="/reg.jsp">  然后跳回注册页面,这时候表单里的内容全没了,而我们在网上经常看到的是,除了错误的表单项外,其他的填写的内容都还保留,只是出错的地方没了 ,提示需要重新输入.请问我这个问题要怎么解决啊?另外这时候如果刷新的话 页面也是要弹出一个对话框要数据重新提交

解决方案 »

  1.   

    上面的问题,第一个我解决了  我在<forward name="regok" path="/success.jsp" redirect="true"/>  添加了redirect="true"地址栏就OK显示了 ,但是问题又出来了,我的action 里面是这样写的:
      如果注册成功了  我在 session里 session.setAttribute("user", user);这样在我的success.jsp 可以显示了user的一些信息,
     但是当注册 失败后 ,页面返回了注册页面 reg.jsp 同样是添加了redirect="true   此时我把错误信息保存在 request里面 不想保存在success里,这时候回到reg.jsp就显示不出了 错误信息 ,我想请问下 怎么才可以 即在地主栏显示当前的路径,而不是XXX.do(html)的,并且还能把request里面的错误信息给取出来,
    当然我仍然想实现正确的表达信息 依然存在,而只是错误的表单信息 给删错了 ,并且提示重新填..我想各位一定都是有经验的高手,请帮小弟给解释一下吧,不胜感激
      

  2.   

    用ajax做用户名是否存在是最好最方便的,
      

  3.   

    关键是我现在不会AJAX啊 
    我现在用的是 JS在注册页面 做些格式上的验证 都通过后,在通过Action做些和数据库的验证,
    现在我主要是想了解如果用 struts的话, 怎么能够解决我上面提到的两个问题哈,请问能我给指点下吗? 非常感谢
      

  4.   

    另外我还想实现这样一个功能,就是我在注册成功后,他能够返回到我在注册之前的页面,就像CSDN那样 直接点击个链接,就返回到了注册前的页面,请问这个地址是怎么记录下来的,请帮我解答下 ,
    我会加分的
      

  5.   

    第一个解决了我说第二个吧。
    首先验证用户名的话,你可以提供一个按钮(检测次用户名是否可用) 按钮可以再新窗口打开,这样。
    然后就是刷新后保存记录的话 ,用 struts 标签  <html:form> 就可以了