【发布时间】:2013-05-29 06:38:53
【问题描述】:
我编写了一段代码,将两对单选按钮放在一个 JSF 项目的 *.xhtml 页面中,该项目是在 JSF2.0、Jboss As 7.1.1 final 和 JDK 6.0、PrimeFaces 3.4.2 中构建的。
<h:panelGrid columns="2">
<h:selectOneRadio value="#{calendarBean.radioFirst}">
<f:selectItem id="morning" itemValue="morning" itemLabel="Morning"/>
<f:selectItem id="afternoon" itemValue="afternoon" itemLabel="Afternoon"/>
</h:selectOneRadio>
<h:selectOneRadio style="padding-left: 170px" value="#{calendarBean.radioSecond}">
<f:selectItem id="noon" itemValue="noon" itemLabel="Noon"/>
<f:selectItem id="endofday" itemValue="endofday" itemLabel="End Of Day"/>
</h:selectOneRadio>
</h:panelGrid>
豆是:
private String radioFirst="morning";
private String radioSecond="endofday";
public String getRadioFirst() {
return radioFirst;
}
public void setRadioFirst(String radioFirst) {
this.radioFirst = radioFirst;
}
public String getRadioSecond() {
return radioSecond;
}
public void setRadioSecond(String radioSecond) {
this.radioSecond = radioSecond;
}
我已经编写了一个方法来调用我想要选择单选按钮的值的动作事件。当方法调用时,我将单选按钮的值设为“morning”和“endofday”,因为这两个是 bean 变量的初始值。
private String radioFirst="morning";
private String radioSecond="endofday";
但如果我更改单选按钮选项,我不会得到更新的值,它与旧的初始值相同。如何获得更改后的值?请帮忙!
【问题讨论】:
-
您是否将
<h:panelGrid />放入<h:form />标记中? -
什么是bean作用域定义?你在哪里
commandButton?您是否添加了h:form? -
Bean 作用域为
@SessionScoped,动作命令按钮为<p:commandButton actionListener="#{userLeaveBean.addAppliedLeave}" styleClass="apply_button" value="Create Leave" onclick="window.reload()"> <f:attribute name="userId" value="#{employee.name}"/> <f:attribute name="firstHalf" value="#{calendarBean.radioFirst}"/> <f:attribute name="secondHalf" value="#{calendarBean.radioSecond}"/> </p:commandButton>。代码在<h:form>tag 内 -
您正在通过
event.getComponent().getAttributes().get("firstHalf")取回价值...? -
是的,它会返回值,但不会返回更改的值,只有默认值。
标签: jsf-2