我正在玩一个简单的struts2应用程序。它有2个JSP页面 - 一个'login.jsp'页面,第二个页面是一个简单的'form.jsp'。我使用相同的表单将数据提交给数据库任意次。如果我成功登录,我会在'form.jsp'页面上显示用户标识的名称。第一次成功登录后,userid将使用<s:property value="#session['user'].userid" />
显示在form.jsp上,但在第一次提交后,form.jsp的后续显示将返回userid的空白。
登录和注销页面是SessionAware
,但是form.jsp后面的Action只是实现了一个模型对象而不是会话感知。如何在多个提交中保留“用户ID”?如果有人能帮助我,我会非常感激。
答案 0 :(得分:1)
如何在多个提交中保留“用户ID”?
你真的需要一个会话变量。由于多个提交调用不同的请求,因此该变量很重要。
将值保存到隐藏字段,如下所示
<s:hidden name="userId" value="%{#session.user.userId}" multiple="true" />
名称必须是camaleCased,因此您拥有属性的getter和setter。当您再次返回表单时,它将从会话中检索值。