Java 如果值来自数据库对象,则的默认值
我为此挣扎了很长时间。我正在更改代码,我需要将默认值放入特立尼达的元素中。例如,我有一个来自数据库的对象名为result。此对象具有属性decision。在select元素中,value参数是这样使用的:value={result.decision} 现在我需要If result.decision为空,将值设置为True。如果值为False,则将值设置为False。如果值为True,则让/设置值为True。我在模板中尝试了类似的方法:Java 如果值来自数据库对象,则的默认值,java,jsf,trinidad,selectoneradio,Java,Jsf,Trinidad,Selectoneradio,我为此挣扎了很长时间。我正在更改代码,我需要将默认值放入特立尼达的元素中。例如,我有一个来自数据库的对象名为result。此对象具有属性decision。在select元素中,value参数是这样使用的:value={result.decision} 现在我需要If result.decision为空,将值设置为True。如果值为False,则将值设置为False。如果值为True,则让/设置值为True。我在模板中尝试了类似的方法: <tr:selectOneRadio id="dec
<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>
但当我这样做时,我只得到一个字符串值,而不是selectOneRadio元素。只有“是”或“否”值
如何将selectOneRadio元素的默认值设置为对象的值,并获得正常的selectOneRadio,而不仅仅是一个值
编辑
这是来自模板的代码。Decision是数据库中需要更改值的对象:
<tr:selectOneRadio id="decisionYes" value="#{viewBean.defaultDecision}" valueChangeListener="#{viewBean.valueChangedOneRadioListener(decision)}"
autoSubmit="true" immediate="true">
<f:selectItems value="#viewBean.decisionStates}"/>
</tr:selectOneRadio>
当我运行此代码时,由于找不到方法,所以出现了错误
javax.faces.event.AbortProcessingException: Method valueChangedOneRadioListener not found
我对Trinidads selectOneRadio使用整数值。 您可以通过设置值来设置默认值。 您使用valueChangeListener对更改事件作出反应
<tr:selectOneRadio
id="maschineId"
value="#{yourBean.yourIntValue}"
valueChangeListener="#{yourValueChangeListener}"
autoSubmit="true">
<f:selectItem itemValue="1"/>
<f:selectItem itemValue="0"/>
</tr:selectOneRadio
谢谢你的回答。我知道了,但如果值来自数据库对象,我不知道如何从DTO传递值。在本例中,{yourBean.yourIntValue}是来自bean的值,而不是来自DTO类的数据库对象。我是否应该创建一个方法,根据从对象返回的值将myIntValue返回到值?是的,就是这样。关于你的第二个评论。您可以从数据库中检索所需的值并设置该值。可能在bean的构造函数中,该值将由pageload设置。如果在加载页面后设置值,并且在使用浏览器重新加载后识别出值更改,则可能需要摆弄trinidads partialTriggers。这取决于backingBean请求或会话使用的范围。我不知道这是否有多大帮助,但我知道特立尼达岛唯一的资源是:非常感谢,如果它有效,我将尝试它,明天再写,因为我担心这不起作用,只有字符串,没有单选按钮。
javax.faces.event.AbortProcessingException: Method valueChangedOneRadioListener not found
<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;
}