标签: selectonemenu

JSF SelectOneMenu使用标签作为值的noSelectionOption?

在"创建新用户"jsf页面中,我有一个带有自定义转换器的SelectOneMenu和一个noSelectionOption selectItem,如下所示:(无关代码无关)

NewUser.xhtml

<h:form>
<h:selectOneMenu value="#{newUserController.user.department}" 
                 required="true" converter="departmentConverter">
    <f:selectItem itemLabel="Select a department" noSelectionOption="true"/>
    <f:selectItems value="#{newUserController.departments}"
                   var="dep" itemLabel="#{dep.name}" itemValue="#{dep}"/>
</h:selectOneMenu>
<p:commandButton action="#{newUserController.saveUser}"
                 value="#{bundle.Save}"
                 ajax="false"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)

NewUserController.java

@ManagedBean
@ViewScoped
public class NewUserController implements Serializable {
private static final long serialVersionUID = 10L;

@EJB private UserBean userBean;
private List<Department> departments;
private User user;

public NewUserController () {
}

@PostConstruct
public void init(){
    user = new User();
    departments = userBean.findAllDepartments();
}

public User getUser() {
    return user;
}

public void setUser(User user) {
    this.user …
Run Code Online (Sandbox Code Playgroud)

jsf converter selectonemenu jsf-2

6
推荐指数
1
解决办法
2万
查看次数

如何使用selectonemenu在JSF中显示hashmap?

我有一个Java哈希映射,其中包含一个组列表:

private HashMap<String, String> listGroups = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

问题是如何将hashmap中的值显示到selectonemenu中?

jsf selectonemenu jsf-2

6
推荐指数
1
解决办法
2万
查看次数

SelectOneMenu更新其他SelectOneMenu

我想在选择第一个SelectOnMenu的任何项目时更新第二个SelectOneMenu.就像现在一样,我从ManagedBean获取SelectOneMenus的值.我想我将使用AJAX(jquery)将参数发送到ManagedBean.

<h:form>
    <div class="center">
        <h:panelGrid id="editTable" columns="2" styleClass="center">
            ...
            <h:outputText value="#{msg.timetable_list_category}" />
            <h:selectOneMenu class="category">
                <f:selectItems value="#{categoryBackingBean.categorys}" var="c"
                    itemLabel="#{c.category_Name}" itemValue="#{c.id}" />
            </h:selectOneMenu>

                <h:outputText value="#{msg.timetable_list_seminarblock}" />
            <h:selectOneMenu class="seminarblock">
                <f:selectItems value="#{seminarblockBackingBean.seminarblocks}" var="s"
                    itemLabel="#{s.seminarblock_Name}" itemValue="#{s.seminarblock_Id}" />
            </h:selectOneMenu>
            ...
        </h:panelGrid>
        ...
    </div>
</h:form>
Run Code Online (Sandbox Code Playgroud)

java ajax jsf selectonemenu managed-bean

6
推荐指数
1
解决办法
2万
查看次数

如何使用依赖对象关系更新多个组件(selectOneMenu)?

我有以下(不言自明的)实体关系:

* Manufacturer
* Car    (Manufacturer.getCars())
* Tire   (Car.getTires())
Run Code Online (Sandbox Code Playgroud)

为myBean

private List<Manufacturer> allManufacturers

private Manufacturer selectedManufacturer
private Car selectedCar
private Tire selectedTire
Run Code Online (Sandbox Code Playgroud)

XHTML

<p:selectOneMenu id="manufacturerSel" value="#{myBean.selectedManufacturer}" converter="#{manufacturerConverter}">
    <f:selectItem itemLabel="None" itemValue="#{null}" />
    <f:selectItems value="#{myBean.allManufacturers}" />
    <p:ajax update="carSel tireSel" />
</p:selectOneMenu>

<p:selectOneMenu id="carSel" value="#{myBean.selectedCar}" converter="#{carsConverter}" disabled="#{empty myBean.selectedManufacturer.cars}">
    <f:selectItem itemLabel="None" itemValue="#{null}" />
    <f:selectItems value="#{myBean.selectedManufacturer.cars}"  />
    <p:ajax update="tireSel" />
</p:selectOneMenu>

<p:selectOneMenu id="tireSel" value="#{myBean.selectedTire}" converter="#{tiresConverter}" disabled="#{empty myBean.selectedCar.tires}">
    <f:selectItem itemLabel="None" itemValue="#{null}" />                            
    <f:selectItems value="#{myBean.selectedCars.tires}"  />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
  • 最后两个p:selectOneMenu应该根据第一个中的选择进行更新
  • p:selectOneMenu带ID 的最后一个tireSel没有正确更新
  • 所有待更新的组件都在同一个内部 NamingContainer …

jsf selectonemenu primefaces jsf-2

6
推荐指数
1
解决办法
3万
查看次数

在JSF中创建多个依赖/级联selectOneMenu下拉列表

我正在尝试制作4个相关菜单.

当用户从第一个菜单中选择项目时,第二个菜单将显示相关数据,当用户从第二个菜单中选择项目时,第三个菜单将显示相关数据,依此类推.

用户将仅在第一个菜单上看到项目,而其他项目将为空白.如果他在第一个菜单上选择一个项目,则第二个菜单将显示数据,但第三个和第四个将保持空白,依此类推.用户最终必须从所有4个菜单中选择条目.

<h:selectOneMenu id="first" value="#{nodes.selectState"}>
    <f:selectItems value="#{nodes.stateList}"/>
    <f:ajax render="second">
</h:selectOneMenu>
<h:selectOneMenu id="second" value="#{nodes.selectCity"}>
    <f:selectItems value="#{nodes.cityList}"/>
    <f:ajax render="third">
</h:selectOneMenu>
<h:selectOneMenu id="third" value="#{nodes.selectRegion"}>
    <f:selectItems value="#{nodes.regionList}"/>
    <f:ajax render="fourth">
</h:selectOneMenu>
<h:selectOneMenu id="fourth" value="#{nodes.selectStation"}>
    <f:selectItems value="#{nodes.stationList}"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

节点Java类

private String selectState; //+setters, getters
private String selectCity; //+setters, getters
private String selectRegion; //+setters, getters
private String selectStation; //+setters, getters
private List<SelectItem> stateList; //+setters, getters
private List<SelectItem> cityList; //+setters, getters
private List<SelectItem> regionList; //+setters, getters
private List<SelectItem> stationList; //+setters, getters

public getStateList(){
    stateList= new ArrayList<SelectItem>();
    stateList.add(new …
Run Code Online (Sandbox Code Playgroud)

jsf hierarchy cascading selectonemenu ajax-update

6
推荐指数
2
解决办法
6441
查看次数

在JSF中添加动态下拉组件

我的要求是这样的.我有一个带有一些值的selectMenu(例如:工程,医学,法律等......).假设如果我在下拉列表中选择工程,我想要另一个动态创建的下拉菜单,其中包含与工程相关的值(例如:电子,计算机,电气等......).我如何在JSF 2.0中实现这一目标?

jsf selectonemenu jsf-2

6
推荐指数
1
解决办法
6183
查看次数

在passtrough属性中使用f:selectItems var

我可以将表达式传递给JSF 2 passthrough-attributes吗?以下代码无效.#{country.isoCode}不评估表达式.

<h:selectOneMenu value="#{bean.selectedCountry}" styleClass="selectlist">
   <f:selectItems 
            value="#{bean.countries}" var="country"
            itemLabel="#{country.countryName}" 
            pt:data-icon="flag flag-#{country.isoCode}"/>                
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

我正在使用命名空间

xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
Run Code Online (Sandbox Code Playgroud)

和bootstrap-select.属性"data-icon"用于显示图像.看到:

http://silviomoreto.github.io/bootstrap-select/#data-icon

渲染输出:

<i class="glyphicon flag flag-"></i> 
Run Code Online (Sandbox Code Playgroud)

el selectonemenu jsf-2 managed-bean passthrough-attributes

6
推荐指数
1
解决办法
2956
查看次数

动态添加Primefaces组件

我想动态添加Primefaces组件.我正在使用与此类似的解决方案,前面已经讨论过:

<h:form>
    <h:panelGrid columns="2">
        <p:dataGrid id="categoriesGrid" value="#{bean.categories}"
            var="categoryBean" rowIndexVar="rowIndex">
            <p:column>
                <p:selectOneMenu id="categorySelect" effect="drop"
                    value="#{categoryBean.selectedCategory}" >
                    <f:selectItems value="#{categoryBean.availableCategories}"
                        var="category" itemLabel="#{category.name}"
                        itemValue="#{category}" />
                </p:selectOneMenu>
            </p:column>
        </p:dataGrid>
        <p:commandButton actionListener="#{bean.addNewCategory}"
            value="Add category" update="categoriesGrid"/>
    </h:panelGrid>
</h:form>
Run Code Online (Sandbox Code Playgroud)

但它有问题.在点击"添加类别"按钮后,我得到了回复示例:

<?xml version='1.0' encoding='UTF-8'?>
<partial-response>
<error>
    <error-name>
        class javax.faces.component.UpdateModelException
    </error-name>
    <error-message>
        <![CDATA[/createTutorial.xhtml @85,65 value=
            "#{categoryBean.selectedCategory}":java.util.NoSuchElementException]]>
    </error-message>
</error>
</partial-response>
Run Code Online (Sandbox Code Playgroud)

提前致谢

java jsf selectonemenu java-ee primefaces

5
推荐指数
1
解决办法
5557
查看次数

JSF.SelectOneMenu和SelectItems

我试图让用户从JSF的下拉列表中选择一个集合的项目.这是我正在使用的代码:

<f:view>
 <h:form id="insert">
    <h:selectOneMenu value="#{MyBean.user}">
        <f:selectItems value="#{MyBean.userList}" var="currentUser" itemValue="#{currentUser.username}" itemLabel="#{currentUser.username}"/>
     </h:selectOneMenu>
     <h:commandButton value="Insert" action="#{AuctionBean.insertItem}"/><br>
 </h:form>
</f:view>
Run Code Online (Sandbox Code Playgroud)

这是MyBean的代码:

@ManagedBean
public class MyBean{
    private String user;
    private Collection<User> userList;

    @PostConstruct
    public void init() {
                this.userList = UserRepository.getInstance().findAllUsers();
    }
    ...
    public String insertItem() {
         System.out.println("The selected user is " + this.user);
         ...
         return ("successfulInsertion");
    }
...
}
Run Code Online (Sandbox Code Playgroud)

如果需要我的用户的getter和setter:

public String getUser() {
        return this.user;
    }

    public void setUser(String user) {
        this.user = user;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,当它打印"所选用户是"时,没有编写user.toString(),而是userList.toString()!这就像selectOneMenu没有正确设置,但我搜索了很多.有人可以帮忙吗?谢谢,AN

jsf selectonemenu

5
推荐指数
1
解决办法
4万
查看次数

<p:selectOneMenu caseSensitive ="true">似乎没有任何效果

我有以下选择一个菜单.但是区分大小写并不适用.当我按小a或大写A时,它总是显示小a(以先发生者为准).

        <p:selectOneMenu id="tempSelect" caseSensitive="true">
                        <f:selectItem itemLabel="0" itemValue="0"/>
                        <f:selectItem itemLabel="a" itemValue="a"/>
                        <f:selectItem itemLabel="A" itemValue="A"/>
                        <f:selectItem itemLabel="b" itemValue="b"/>
        </p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

我的主要版本是5.2.

当选择框处于焦点时.我按下字母"a"字母或者按下大写字母"A",在这两种情况下它只在框中显示"a"(因为它首先出现在列表中).这是实际行为.

我的预期行为是,当我按下"a"时它会输出"a",当我按下"A"时,它会在框中输入"A".

我该怎么办?

jsf selectonemenu primefaces

5
推荐指数
1
解决办法
1041
查看次数