Java 如何在struts2中获取迭代器外部的值
我需要打印Java 如何在struts2中获取迭代器外部的值,java,jsp,struts2,Java,Jsp,Struts2,我需要打印catalogo.id,因为我需要从它的id获取catalogo对象。我如何获取它,因为我有一个迭代器?现在我打印action?idprodotto=XX&idcatalogo= jsp <s:iterator value="catalogo"> <s:iterator value="prodotti"> <tr style="background-color: #99CCFF"> <td>
catalogo.id
,因为我需要从它的id获取catalogo
对象。我如何获取它,因为我有一个迭代器?现在我打印action?idprodotto=XX&idcatalogo=
jsp
<s:iterator value="catalogo">
<s:iterator value="prodotti">
<tr style="background-color: #99CCFF">
<td><s:property value="id" /></td>
<td><s:property value="descrizione" /></td>
<td><s:property value="prezzo" /></td>
<td><s:property value="nPezziVenduti" /></td>
<td><a
href='<s:url action="cancellaProdottoDaCatalogo.action" >
<s:param name="idprodotto"><s:property value="id"/></s:param>
<s:param name="idcatalogo"><s:property value="catalogo.id"/></s:param></s:url>'>rimuovi
dal catalogo</a></td>
</tr>
</s:iterator>
</s:iterator>
行动方法
public String cancellaProdottoDaCatalogo(){
System.out.println(catalogo.getDescrizione());
Catalogo tmp = catalogoDAO.getCatalogo(catalogo.getId());
for(Prodotto p:catalogo.getProdotti()){
tmp.rimuoviProdotto(p);
}
catalogoDAO.aggiornaCatalogo(catalogo);
return SUCCESS;
}
阅读更新后的问题后,我认为您应该使用
var
-属性,因为@A Lee已经在评论中回答了
您有一个嵌套的迭代,如果您想访问第一个迭代器,您必须使用某种引用来查找第一个迭代器中的值。而var
提供对外部循环中当前元素的引用,并将引用作为c推送到值堆栈中
与内环相同p引用内环中的当前元素
附带说明:struts迭代器将当前元素的元素推送到值堆栈中,这样您就可以轻松地使用id、Descriptione等。请参见struts文档中的第三个示例
例如:
目录编号:
Prodotti Id:
"
请注意#在引用名称之前,在这种情况下需要在上下文中搜索变量。如果我理解正确,您可以通过使用
var
属性绑定迭代器来解决此问题property@ALee但这样我不能传递对象,但我会传递一个“字符串”“。对吗?像在
-标签中一样打印?使用
任何你想打印该列的地方。@beendr它不起作用,你的解决方案就像我做的那样:(@ALee我更新了我的问题。请检查你是否可以:)
public String cancellaProdottoDaCatalogo(){
System.out.println(catalogo.getDescrizione());
Catalogo tmp = catalogoDAO.getCatalogo(catalogo.getId());
for(Prodotto p:catalogo.getProdotti()){
tmp.rimuoviProdotto(p);
}
catalogoDAO.aggiornaCatalogo(catalogo);
return SUCCESS;
}