【问题标题】:SelectItem.value returns only the object reference as String [duplicate]SelectItem.value 仅将对象引用作为字符串返回 [重复]
【发布时间】:2019-05-14 06:07:06
【问题描述】:

目标是正确获取 SelectItem.value 并将其设置在我的支持 bean 中。问题是 itemValue 似乎只返回对象引用。我只是关注了这个https://www.primefaces.org/showcase/ui/input/oneMenu.xhtml

你是如何实际获取选中项的对象(即itemValue)的?

试图将 setter 作为我的 itemValue 的确切对象,但最终将 null 设置为值

试图将setter设置为通用对象,结果将值设置为对象引用为字符串

<p:selectOneMenu id="car" value="#{selectOneMenuView.car}">
            <f:selectItem itemLabel="Select One" itemValue="" />
            <f:selectItems value="#{selectOneMenuView.cars}" />
 </p:selectOneMenu>

支持豆


Car car = new Car(brand, model);
SelectItemGroup g1 = new SelectItemGroup("German Cars");
        g1.setSelectItems(new SelectItem[] {new SelectItem(car, "BMW")});

Car car1 = new Car(brand1, model1);
SelectItemGroup g2 = new SelectItemGroup("American Cars");
        g2.setSelectItems(new SelectItem[] {new SelectItem(car1, "Chrysler")});

        cars = new ArrayList<SelectItem>();
        cars.add(g1);
        cars.add(g2);

When there's an item selected, setCar is invoked but it seems to not pass the value that I want.

//value is null
public void setCar(Car car) {this.car = car;}
//value is the object reference
public void setCar(Object car) {this.car = car;}

我已尝试明确放置 var 和 itemValue 属性,但结果仍然相同。

我似乎无法为此找到一个好的文档。我的目标可能吗?我需要一些帮助。谢谢!

【问题讨论】:

    标签: java jsf primefaces selectonemenu


    【解决方案1】:

    这里你有一个汽车构造函数,它接受品牌和型号的两个参数,但在你的设置器中你只接受一个汽车对象。 我认为你应该有这样的代码:

    public void setCar(brand b,model m){
         this.brand=b;
         this.model=m;
    }
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2015-09-24
      • 2019-12-15
      • 2013-12-31
      • 2015-10-24
      • 2019-03-04
      • 2014-12-20
      • 1970-01-01
      • 2010-11-12
      • 2019-11-16
      相关资源
      最近更新 更多