Java 如何避免/抑制JSF空(无选择选项)选项卡?
创建新项目时,用户不希望在“选择一个”菜单中看到null no selection选项,而是直接从可用项目中选择一个项目。因此,要么去掉null no选项,要么直接显示下拉列表中的第二个元素。我尝试了属性选择,但它没有任何作用。 我怎样才能做到这一点Java 如何避免/抑制JSF空(无选择选项)选项卡?,java,jsf,Java,Jsf,创建新项目时,用户不希望在“选择一个”菜单中看到null no selection选项,而是直接从可用项目中选择一个项目。因此,要么去掉null no选项,要么直接显示下拉列表中的第二个元素。我尝试了属性选择,但它没有任何作用。 我怎样才能做到这一点 <h:selectOneMenu id="ugroup" value="#{usersController.selected.ugroup}" title="#{bundle.CreateUsersTitle_ugroup}" require
<h:selectOneMenu id="ugroup" value="#{usersController.selected.ugroup}" title="#{bundle.CreateUsersTitle_ugroup}" required="true" requiredMessage="#{bundle.CreateUsersRequiredMessage_ugroup}">
但是,由于这种静态方法在我的代码中无处不在,它会产生任何不必要的后果吗
例如,如果用户决定不选择任何选项,则当用户明确希望从中获得空值时。我的猜测是使用只需确保{ugroupController.itemsAvailableSelectOne}在数组或列表中不包含值为null的项。第一项将是默认选择的选项
或者,在bean的后期构造过程中,将{userscocontroller.selected.ugroup}后面的属性预设为所需项的值。感谢@BalusC的快速回答!我编辑了我的问题!我只需要知道,如果它是安全的做修改以上通过修改代码!你可以这样做。注意,自JSF2.0以来,不再显式地需要SelectItem[]或列表或映射。一份清单也很好。我一点都不知道!这可能有助于我实现其他目标,例如:轻松地向对象添加列表。。。。好的,再次非常感谢@BalusC。不客气。注意var属性。其用途与和中的相同。
</h:selectOneMenu>
public class JsfUtil {
public static SelectItem[] getSelectItems(List<?> entities, boolean selectOne) {
int size = selectOne ? entities.size() + 1 : entities.size();
SelectItem[] items = new SelectItem[size];
int i = 0;
if (selectOne) { // part to be removed
items[0] = new SelectItem("", "---");
i++;
} // end of part to be removed
for (Object x : entities) {
items[i++] = new SelectItem(x, x.toString());
}
return items;
}
if (selectOne) {
items[0] = new SelectItem("", "---");
i++;
}