要实现一个网站,这个网站有很多目录,比如
http://myweb/index.jsp
http://myweb/a/default.jsp
http://myweb/b/c/d.jsp
......等等要求用户可以随时在这些页面中进行登录(如果已经登录,则用于登录的那一块显示欢迎信息)我的想法是,在根目录中添加一个 user-login.jsp,然后在 index.jsp、default.jsp、d.jsp 等页面使用<jsp:include page="user-login.jsp" />引用进来,这也是 jsp 一向的做法
但是,在struts2中,user-login.jsp 提交到 Action 后,它的 result 是在配置文件中事先定义好的,这样Action中就不知道如何处理当用户从不同页面登录后如何回到它访问的页面的问题了。
比如说
struts.xml:
<action name="login" class="......">
<result name="input">/user-login.jsp</result>
<result name="success">/loginOK.jsp</result>
</action>用户分别在
http://myweb/a/default.jsp
http://myweb/b/c/d/e/f/g/h/news.jsp
页面以正确的用户名和密码登录后,应该再回到他们当初登录时的页面,而不是/user-login.jsp 或 loginOK.jsp。
这应该如何实现?
http://myweb/index.jsp
http://myweb/a/default.jsp
http://myweb/b/c/d.jsp
......等等要求用户可以随时在这些页面中进行登录(如果已经登录,则用于登录的那一块显示欢迎信息)我的想法是,在根目录中添加一个 user-login.jsp,然后在 index.jsp、default.jsp、d.jsp 等页面使用<jsp:include page="user-login.jsp" />引用进来,这也是 jsp 一向的做法
但是,在struts2中,user-login.jsp 提交到 Action 后,它的 result 是在配置文件中事先定义好的,这样Action中就不知道如何处理当用户从不同页面登录后如何回到它访问的页面的问题了。
比如说
struts.xml:
<action name="login" class="......">
<result name="input">/user-login.jsp</result>
<result name="success">/loginOK.jsp</result>
</action>用户分别在
http://myweb/a/default.jsp
http://myweb/b/c/d/e/f/g/h/news.jsp
页面以正确的用户名和密码登录后,应该再回到他们当初登录时的页面,而不是/user-login.jsp 或 loginOK.jsp。
这应该如何实现?
解决方案 »
- InvalidDataAccessResourceUsageException:could not execute query,求助,谢谢。
- jsp中多个页面之间共享数据的问题
- Spring 无法注入~~~急求~~~
- STRUTS HTTP Status 404 - Servlet action is not available问题
- 请教:struts2上传文件后将结果页面加载到指定s:div中
- hibernate问题:一个属性在数据库里是blob类型;但是在MyEclipse生成的DAO里面却是String
- hibnerate 更新数据后,取出的数据与数据库中的实际数据不一致。
- AXIS2报文头设置
- struts 问题
- 谁能帮我一下,我一定给分的
- J2EE的困惑
- 数组的自加问题,麻烦老鸟们给我这个菜鸟详细的解释下,先谢过了
能不能直接通过 response/request直接转,
我也想这样,但是response怎么知道用户是从哪个原始页面登录来的呢
还有就是,struts2 把所有的请求都拦截了,还有跳转的目标url也是在struts.xml里面定死了的,不知道该如何跳转
就是记录下原始页面的URL,然后在struts.xml中配置成<result name="success">${URL}</result>
request.setAttribute("user",user);
session.setAttribute("user",user);
其中user是指,你要传到另一个页面的对象,
到另一个页面是这样获取该对象的;
request.getAttribute("user");
session.getAttribute("user");
不是显示信息,而是要跳回到原来的页面去比如你从 http://mywebsite/a/b/c/d/index.jsp 登录, 登录的表单提交到一个 action, 这个 action 在执行之后还要回到 http://mywebsite/a/b/c/d/index.jsp 这个页面
而你还有可能从 http://mywebsite/1/2/3/4/5/index.jsp 登录, 登录的表单同样是提交到这个 action, 这里执行之后回到 http://mywebsite/1/2/3/4/5/index.jsp
当然还可能会有很多个页面 index1.jsp, index2.jsp, test.jsp, face.jsp 我要求从哪里来就回到哪里去
这个办法我想到过了,但是 action 得到这个地址之后又能怎么样呢, struts2 里是通过执行方法返回的字符串跳转到已经在 struts.xml 中指定好的页面, 而不是由程序来 redirect 的
如果仅用 jsp 做的话, 这根本就不是问题
在return 到得到的页面就行了啊。不要用maping啊。
这是 struts 1 的吧
我说的是 struts2
怎么返回啊?
action 里执行的方法都是返回字符串,然后根据配置文件里的东西返回的,怎么不用 mapping 了呢
response.sendRedirect(ref);
在strut.xml中多定义几个
<result name="input1">/...</result>
,只是验证时有点麻烦.但通过,使用隐藏表单域,隐藏表单域的值定义为页面的值,配合
<result name="input">${hiddername}</result>能够找到返回请求的页面.经过测试是可行的.