如何在struts2中将值从querystring传递到action类?

如何在struts2中将值从querystring传递到action类?,struts2,Struts2,我想将ID从查询字符串传递到action类,并想在action类中使用该ID。我试着: <li> <a href="NextPageData.action?recordID=sessionMap.get(recordID[0])">Next</a> </li> 但我有个例外。我已将列表添加到sessionMap,并希望从sessionMap中检索该值作为queryString参数。 有谁能为我提供解决这个问题的办法吗 谢谢。如果您保持会

我想将ID从查询字符串传递到action类,并想在action类中使用该ID。我试着:

<li>
  <a href="NextPageData.action?recordID=sessionMap.get(recordID[0])">Next</a>
</li>
  • 但我有个例外。我已将列表添加到sessionMap,并希望从sessionMap中检索该值作为queryString参数。 有谁能为我提供解决这个问题的办法吗
    谢谢。

    如果您保持会话状态,则无需再次作为请求参数发送。您可以在Action类中直接访问该会话变量。

    一般来说,在Struts2中,请求参数在操作中自动可用,如果:

    String paramValue = ServletActionContext.getRequest().getParameter("recordID"); 
    
  • 对于具有相同名称的变量,您的操作中有一个getter和setter(例如,在您的示例中为int getRecordID()setRecordID(int id))
  • 在操作的拦截器堆栈中有参数sinterceptor。[1]
  • [1] 请参见下面的代码

    <li>
      <a href="NextPageData.action?recordID="+<s:property value="%{sessionMap.get(recordID[0])}/> >Next</a>
    </li>
    

  • 希望这能有所帮助。我不是Struts专家,但我尝试了以下Struts 2 Live项目,效果很好

    String paramValue = ServletActionContext.getRequest().getParameter("paramName");
    

    只需将此代码放在action类上

    String paramValue = ServletActionContext.getRequest().getParameter("recordID"); 
    

    你能显示代码和例外吗?为什么你在操作中需要这个参数?不要这样做。您的操作不再是无状态的。如果用户从不同的选项卡调用您的操作,就会出现混乱。您实际上不需要在S2中这样做。这可能不是OP所要求的。