正在获取列表中项目的id<;对象>;在JSF中
我不知道当单击表单按钮时,应该采用什么方法以及如何开始编码以获取特定对象项的正在获取列表中项目的id<;对象>;在JSF中,jsf,jsf-2,managed-bean,Jsf,Jsf 2,Managed Bean,我不知道当单击表单按钮时,应该采用什么方法以及如何开始编码以获取特定对象项的id 显示的产品Id值是我创建的产品表的主键。我来自Swing编程,在Swing中,我可以轻松使用JLabel.getText()获取屏幕截图上显示的产品ID1,4,5,6。但是我想它与JSF不同 此外,这些对象值包含在ui:repeat循环中 frames.xhtml <ui:repeat value="#{frameBean.all}" var="f" varStatus="loop">
id
显示的产品Id值是我创建的产品表的主键。我来自Swing编程,在Swing中,我可以轻松使用JLabel.getText()
获取屏幕截图上显示的产品ID1,4,5,6
。但是我想它与JSF不同
此外,这些对象值包含在ui:repeat
循环中
frames.xhtml
<ui:repeat value="#{frameBean.all}" var="f" varStatus="loop">
<h:outputText escape="false" rendered="#{loop.index % 3 == 0}" />
<div >
<div class="col-sm-6 col-md-3">
<div class="thumbnail clearfix">
<img src="..." alt="frame image placeholder" width="240" height="180"/>
<div class="caption">
<p>
<h:outputLabel>Product ID: </h:outputLabel>
<h:outputText value="#{f.product_id}"/>
</p>
<p><h:outputLabel value="#{f.name}"/></p>
<p><h:outputText value="#{f.description}"/></p>
<p>
<h:panelGroup rendered="#{login.userRole eq 'customer' or login.userRole eq null}">
<a href="#" class="btn btn-primary pull-right" role="button">Add To Cart</a>
</h:panelGroup>
</p>
</div>
</div>
</div>
</div>
<h:outputText escape="false" rendered="#{loop.last or (loop.index + 1) % 3 == 0}" />
</ui:repeat>
为了获得框架的产品Id,我考虑创建一个addToCart(int-aProductId)
方法。它需要一个ProductID
参数
谢谢。您可以使用f:param组件存储产品id
<p>
<h:outputLabel>Product ID: </h:outputLabel>
<h:outputText value="#{f.product_id}"/>
<f:param name="productId" value=""#{f.product_id}""></f:param>
</p>
您需要使用
ui:repeat
的var
属性。在支持bean中对方法进行编码addToCart(框架f)
当执行单击操作时,需要从xhtml调用此方法。
大概是这样的:-
这里传递给方法的参数是ui:repeat
的var
属性,该属性用于唯一标识传递给ui:repeat
的元素列表中的每个元素
希望这能解决您的问题。Offtopic:不要在Getter中做任何工作:
<p>
<h:outputLabel>Product ID: </h:outputLabel>
<h:outputText value="#{f.product_id}"/>
<f:param name="productId" value=""#{f.product_id}""></f:param>
</p>
String propertyId = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
.get("productId");
public void addToCart(Frame pFrameAdded){
//Do your operations over the frame added.
}