如何通过primefaces中的bean在selectOneRadio/selectCheckboxMenu中设置默认选定的项目

问题描述 投票:0回答:3

我想创建

selectOneRadio
列表和
selectCheckboxMenu
哪些项目从相关的 bean 对象中获取。 对于非选定列表,它运行良好。但是我如何为这些列表提供默认选择的某些项目。 我当前的
selectCheckboxMenu
代码是这样的。

<p:selectCheckboxMenu id="trdays" 
             value="#{mybean.selectedDay}"
             label="Select Days">
      <f:selectItems value="#{mybean.dayList}" var="day"
       itemValue="#{day.value}" itemLabel="#{day.name}"/>
</p:selectCheckboxMenu>

当页面加载且用户尚未执行任何操作时,它应该看起来像这样。

default page display

编辑 日间课程 :-

public class Day{

  private String name;
  private String value;

  //getters and setters

}
jsf primefaces
3个回答
7
投票
selectCheckboxMenu 组件的 Value 属性应该获取您的默认值。 在 bean 方面,您应该为

selectedDayList 和所有 daylist 编写一个 getter。

示例:

@PostConstruct public void init() { dayList= new ArrayList<String>(); dayList.add("Mon"); dayList.add("Tue"); dayList.add("Wed"); dayList.add("Thu"); dayList.add("Fri"); dayList.add("Sat"); dayList.add("Sun"); selectedDayList= new ArrayList<String>(); selectedDayList.add("Tue"); selectedDayList.add("Wed"); } public List<String> getDayList() { return dayList; } public List<String> getSelectedDaylist() { return selectedDayList; }

.xhtml 页面应该是这样的。

<p:selectCheckboxMenu id="trdays" value="#{mybean.selectedDaylist}" label="Select Days"> <f:selectItems value="#{mybean.dayList}" var="day" itemValue="#{day.value}" itemLabel="#{day.name}"/> </p:selectCheckboxMenu>

祝你好运!


2
投票
只需在 init 方法中的

selectedDay

 列表(或数组)中添加默认值(使用 
@PostConstruct
 注释)。这些值应与相应的 
itemValue
 属性具有相同的值(在您的情况下为 
day.value
)。


0
投票
我也遇到过同样的问题!我通过实现对象的 equals() 方法解决了这个问题。所以@gokhansari 是对的,但不要忘记实现正确的 equals 方法

© www.soinside.com 2019 - 2024. All rights reserved.