当前位置: 首页 > 知识库问答 >
问题:

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

长孙高远
2023-03-14

我为此挣扎了很长时间。我正在更改代码,需要将默认值设置为特立尼达岛的selectOneRadio元素。我有来自数据库的对象(例如称为result)。此对象具有属性decision。在select元素中,value参数的使用方式是value=“#{result.decision}”

现在我需要结果。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>

并且在viewBean中的这个函数:

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

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

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

编辑

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

<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

共有1个答案

孔安阳
2023-03-14

我对Trinidads selectOneRadio使用整数值。您可以通过设置值来设置默认值。使用valueChangeListener对更改事件做出反应。

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

你的backingBean看起来像这样:

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;
}
 类似资料:
  • 只是回顾一下 数据库-未找到记录-将默认复选框显示为选中 如果记录找到从数据库exisfieldfirstname=false使用值,则未选中复选框

  • 我想从dto对象中设置值,并使用save jpa repository方法将其插入数据库。如果属性无效(null或大小过长),我可以使用jpa插入默认值吗? dto对象: 我使用验证器来控制值:

  • 问题内容: 我在模型上有一个字段,其内容是: 然后,我将模型更改为: 当我运行以检查迁移时,发现以下更改: 我不理解为什么Django在表中应用a ,因为我正在 创建 默认值。如果这是正确的,Django如何实现默认值? 有关我的工具的信息: PostgreSQL 9.5; Django 1.11b1; 问题答案: 从ln开始的对django / db / backends / base / sc

  • 问题内容: 考虑程序的三个不同的运行: 是否可以在第一种情况下,第二种情况下,第三种情况下使用? 问题答案: 带有参数的参数可以很好地处理此三向输入。 我也可以给它一个参数。 如何使用argparse在python中添加多个参数选项?

  • JOOQ似乎完全忽略了数据库列的默认值。既不会更新ActiveRecord对象,也不会在插入时跳过此列。相反,它尝试将其设置为NULL,这在非NULL列上失败。 例: 我所期望的行为是,要么new记录()用korrekt值初始化所有默认变量(尽管我知道如果结果是自定义函数的结果,这可能很困难:-))。或者INSERT INTO不插入所有带有默认值的未修改列,然后INSERT INTO后面跟着一个S

  • 注:内容翻译自官网文档 Language Guide (proto3) 中的 Default Values 一节 当消息被解析时, 如果被编码的消息没有包含特定的简单元素, 被解析的对象对应的字段被设置为默认值. 默认值是和类型有关的: 对于strings, 默认值是空字符串(注, 是"", 而不是null) 对于bytes, 默认值是空字节(注, 应该是byte[0], 注意这里也不是null)