将一个List从Action类传递给struts2中的jsp和From JSP到action类

时间:2012-04-04 13:58:54

标签: jqgrid struts2

我有一个要求,我在JSP中使用Struts2以及Jqgrid。

根据我的要求,我通过拦截器从不同的动作类中获取一个列表。

我必须将列表传递给JSP,并将Jgrid url传递回相应的操作类。

当我使用request.setAttribute并传递与

参数相同的值时

jqgrid动作类url其工作正常  [E.g showExcelGrid.action?LIST='+"<%=request.getAttribute("LIST")%>"但是当列表很大时,它无法正常工作。

请提出一些建议。

由于

2 个答案:

答案 0 :(得分:3)

我不确定JqGrid是如何工作的,但下面描述了价值流的方式

要将动作类中的List / Map或任何其他集合支持的对象发送到JSP,您只需在动作类中创建一个list属性并为其提供getter和setter

示例操作类

public class SampleAction extends ActionSupport{

 private List<String> listForJspPage;

  //getter and setter for this list property

  public String execute() throws Exception{
    listForJspPage=new ArrayList<String>();
    listForJspPage=fill this list with values
    return SUCCESS;
  }

}

使用上面的代码执行您的操作时,您在值堆栈中有listForJspPage并且可以使用OGNL访问

示例JSP

<s:iterator value="listForJspPage">
  // do what ever you want to fo
</s:itertor>

此处value="listForJspPage"将被S2解释为动作类中的getListForJspPage()以获取值。

为了将值发送回动作类,我们可以在OGNL的帮助下确保setter方法,如

<s:iterator value="listForJspPage">
     <s:textfield name="listForJspPage['%{id}'].value" value="%{value}" />
    </s:itertor>

在此我们迭代listForJspPage列表。在textfield标记上,我们将名称设置为“listForJspPage['%{id}'].value”,这会产生类似“listForJspPage['1'].value”的内容。这进一步可以被视为

getListForJsppage().get(index).setvalue(out given value);

答案 1 :(得分:0)

我知道这件事已经很晚了,但我今天发现这个有效。

您可以使用struts2的s:select标记通过jsp将列表从一个操作类传递到另一个操作类,如下所示:

List<String> formList //getter and setter should be there in both the action classes

<div id="divList" style="display: none;">
<s:select list="formlist" multiple="true" id="selectedList" name="formListList"></s:select>
</div>