Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果值来自数据库对象,则的默认值_Java_Jsf_Trinidad_Selectoneradio - Fatal编程技术网

Java 如果值来自数据库对象,则的默认值

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

我为此挣扎了很长时间。我正在更改代码,我需要将默认值放入特立尼达的元素中。例如,我有一个来自数据库的对象名为result。此对象具有属性decision。在select元素中,value参数是这样使用的:value={result.decision}

现在我需要If result.decision为空,将值设置为True。如果值为False,则将值设置为False。如果值为True,则让/设置值为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>
但当我这样做时,我只得到一个字符串值,而不是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;
}