我正在尝试访问表达式$ result.id的值并使用该值并将其传递给bean操作commitBtn。我该怎么做呢。
<c:forEach items="${bean.results}" var="result">
<fieldset>
<legend>
<b>Title:</b>
${result.id}
<c:set var="Id" value="${result.id}" />
<!-- this Id doesn't show as well, why -->
<h:outputText value="#{Id}" binding="#{bean.Id_lbl}" id="iD_lbl" />
<h:commandButton value="Commit" binding="#{bean.commitBtn}"
id="commitBtn" action="#{bean.commitBtn}" />
</legend>
...
答案 0 :(得分:0)
使用&lt; f:param&gt;标记将值传递给操作。在操作中,您必须从requestMap获取param值
类似的东西:
<h:commandButton blah blah blah>
<f:param name="resultId" value="${result.id}" />
</h:commandButton>
然后在行动代码中:
resultId = FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("resultId");
答案 1 :(得分:0)
某些人可能会建议f:param
不在JSF 1.x中的h:commandButton
中工作。请改用f:setPropertyActionListener
:
<h:commandButton value="Commit" binding="#{bean.commitBtn}" id="commitBtn" action="#{bean.commitBtn}">
<f:setPropertyActionListener target="#{bean.resultId}" value="#{result.id}" />
</h:commandButton>
另请参阅this article以获取更多提示。