2013-03-21 61 views
0

我想从查询字符串传递ID到我的动作类,并且想要在我的动作类中使用该ID。我试图:如何将值从querystring传递到struts2中的动作类?

<li> 
    <a href="NextPageData.action?recordID=sessionMap.get(recordID[0])">Next</a> 
</li> 

但我得到例外。我已将session列表添加到sessionMap,并希望从sessionMap中将该值作为queryString参数进行检索。 任何人都可以提供我解决这个问题的方法 谢谢。

+0

可以显示代码和异常 – PSR 2013-03-21 09:08:34

+0

使用''标签。 – 2013-03-21 09:09:59

+0

为什么在动作中需要这个参数? – 2013-03-21 09:36:00

回答

0

如果您保留在会话中,则不需要再次发送请求参数。您可以直接访问Action类中的该会话变量。

+0

不要这样做。你的行为不再是无国界的。如果用户从不同的选项卡调用您的操作,则会产生混淆。 – 2013-10-10 15:31:31

0

一般来说,在Struts2请求参数,如果是在动作自动可供选择:

  1. 您的行动具有相同名称的变量的getter和setter(如int getRecordID()setRecordID(INT id)在你的情况下)
  2. 你有行动的拦截器堆栈中的ParametersInterceptor。 [1]

[1]见http://struts.apache.org/release/2.2.x/docs/interceptors.html

0

尝试以下

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

希望这段代码可以帮助

-1

嘛,我不是一个Struts的专家,但我试过遵循我的Struts 2 Live项目并且工作正常。

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

你并不需要在S2中这样做。这可能不是OP要求的。 – 2016-06-01 16:49:17

-1

只需将此代码放在操作类中即可。

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

同上... – 2016-06-01 16:48:04

相关问题