<tr:selectOneRadio>的默认值(如果该值来自数据库对象)



我为此苦苦挣扎了很长时间。我正在更改代码,我需要输入默认值以从特立尼达选择OneRadio元素。我有来自数据库的对象(例如称为结果)。此对象具有属性决策。在选择元素值参数中以这种方式使用value="#{result.decision}".

现在我需要 如果结果决定为空,则将值设置为 True。如果值为假,则让/将值设置为假。如果值为真,则让/将值设置为真。我在模板中尝试了这样的事情:

<tr:selectOneRadio id="decision" value="#{viewBean.changeValueToOne(result)}" autoSubmit="true" immediate="true">
<f:selectItem itemValue="true" itemLabel="Yes"/>
<f:selectItem itemValue="false" itemLabel="No"/>
</tr:selectOneRadio>

而这个函数在视线中憨豆:

public Boolean changeValueToOne(ResultDTO result) {
if (result.getDecision() == null) {
result.setDecision(Boolean.TRUE);
}
return result.getDecision();
}

但是当我这样做时,我只得到一个字符串值而不是 selectOneRadio 元素。只有"是"或"否"值。

如何将默认值设置为选择OneRadio元素为对象的值并获得正常的selectOneRadio,而不仅仅是一个值。

编辑

这是模板中的代码。决策是数据库中我需要更改值的对象:

<tr:selectOneRadio id="decisionYes" value="#{viewBean.defaultDecision}" valueChangeListener="#{viewBean.valueChangedOneRadioListener(decision)}"
autoSubmit="true" immediate="true">
<f:selectItems value="#viewBean.decisionStates}"/>
</tr:selectOneRadio>

这是来自 viewBean 的侦听器方法:

public void valueChangedOneRadioListener(DecisionDTO decision, ValueChangeEvent event)
{
if(event.getNewValue() != null) {
if((Boolean)event.getNewValue().equals(Boolean.TRUE))
{
decision.setDecision(Boolean.TRUE);
} else {   
decision.setDecision(Boolean.FALSE);
}
// this is variable used in selectRadio
this.setDefaultVyjadreni((Boolean)event.getNewValue());
}
}

当我运行此代码时,我收到错误,因为找不到方法。

javax.faces.event.AbortProcessingException: Method valueChangedOneRadioListener not found

我为特立尼达选择OneRadio使用整数值。 您可以通过设置您的值来设置默认值。 你对一个变化事件做出反应,有一个值改变侦听器。

<tr:selectOneRadio
id="maschineId"
value="#{yourBean.yourIntValue}"
valueChangeListener="#{yourValueChangeListener}"
autoSubmit="true">
<f:selectItem itemValue="1"/>
<f:selectItem itemValue="0"/>
</tr:selectOneRadio

你的背水豆看起来有点像这样:

public void yourValueChangeListener(ValueChangeEvent event)
{
if(event.getNewValue() == null)
return;
if((Integer)event.getNewValue() ==  1)
{
//react on a change to 1
}
if((Integer)event.getNewValue() ==  0)
{
//react on a change to 0
}
}
public int getYourIntValue() {
return yourIntValue;
}
public void setYourIntValue(int yourIntValue) {
this.yourIntValue = yourIntValue;
}

相关内容

  • 没有找到相关文章

最新更新