【发布时间】:2014-06-09 15:17:57
【问题描述】:
我想在 JSF 中实现以下 UI。
[单选按钮] [图像] [标签]
[单选按钮] [图像] [标签]
[RadioButton] [Image] [Label] 等等...
执行以下代码后,UI 看起来不错。但是,当我单击任何单选按钮时,UI 中不会出现选择(未选中单选),尽管 bean 类由 valueChanged 事件更新。那么如何设置 selectOneRadio 勾选呢?
JSF 代码:
<!-- payment options -->
<ui:repeat value="#{shoppingCartBean.paymentMethods}" var="m">
<!-- radio button -->
<div style="float:left;">
<ice:selectOneRadio
value="#{shoppingCartBean.selectedPaymentMethod}"
layout="pageDirection"
partialSubmit="true"
valueChangeListener="#{shoppingCartHandler.valueChanged}">
<f:selectItem itemLabel="" itemValue="#{m}"/>
</ice:selectOneRadio>
</div>
<!-- card image -->
<div style="float:left;">
<ice:graphicImage value="#{layoutBean.currentImagesPath}/#{m}.png"/>
</div>
<!-- payment method description or label -->
<div style="padding: 10px">
<ice:outputText value="#{bundleMessages.messages[m]}"/>
</div>
<div style="clear:both;"></div>
</ui:repeat>
<!-- payment options end-->
和bean类中的方法:
public List<String> getPaymentMethods() {
List<String> paymentMethods = new ArrayList<String>();
paymentMethods.add("crditcard");
paymentMethods.add("directbanking");
paymentMethods.add("paypal");
return paymentMethods;
}
public String getSelectedPaymentMethod() {
return this.selectedPaymentMethod;
}
public void setSelectedPaymentMethod(String selectedPaymentMethod) {
this.selectedPaymentMethod = selectedPaymentMethod;
}
handler 类中的 valueChanged 事件:
public void valueChanged(ValueChangeEvent event) {
String value = null;
if (event.getSource() instanceof HtmlSelectOneRadio) {
value = ((String) event.getNewValue());
}
if (value != null) {
this.shoppingCartBean.setSelectedPaymentMethod(value);
}
}
【问题讨论】:
标签: javascript jquery jsf jsf-2 icefaces