标签: selectonemenu

填充p:selectOneMenu基于另一个p:selectOneMenu在ap:dataTable的每一行

我有一个<p:dataTable>懒惰的负载.在其中两列中,<p:selectOneMenu>每列都有一个.

第一列包含国家/地区列表,第二列包含数据库中的状态列表.

我想第二个菜单显示在只有那些状态(包含州列表的)每一行对应于该国在第一菜单中的数据表的每一行数据表.

在编辑模式下,当其菜单中的国家/地区更改时,应在其当前行的菜单中填充与该国家/地区对应的状态.

如何在数据表的每一行中加载与其国家/地区对应的状态列表?


数据表中的这两列是不完整的,因为我对如何实现这一点没有一个确切的想法.

<p:column>
    <p:cellEditor>
        <f:facet name="output">
            <h:outputText value="#{row.state.country.countryName}"/>
        </f:facet>

        <f:facet name="input">
            <p:selectOneMenu value="#{row.state.country}">
                <f:selectItems var="country"
                               value="#{cityBean.selectedCountries}"
                               itemLabel="#{country.countryName}"
                               itemValue="#{country}"/>

                <p:ajax update="states" listener="#{cityBean.getStates}"/>
            </p:selectOneMenu>
        </f:facet>
    </p:cellEditor>
</p:column>

<p:column>
    <p:cellEditor>
        <f:facet name="output">
            <h:outputText value="#{row.state.stateName}"/>
        </f:facet>

        <f:facet name="input">
            <p:selectOneMenu id="states">

                <f:selectItems var="state"
                               value="#{cityBean.selectedStates}"
                               itemLabel="#{state.stateName}"
                               itemValue="#{state}"/>
            </p:selectOneMenu>
        </f:facet>
    </p:cellEditor>
</p:column>
Run Code Online (Sandbox Code Playgroud)

cityBean.selectedCountries检索所有必需的国家,但cityBean.selectedStates也从数据库中检索所有不必要的状态,并且应该修改这些状态​​以仅检索与另一个菜单中的国家相对应的那些状态.

我怎么能从这里开始?

jsf selectonemenu primefaces jsf-2.2

12
推荐指数
1
解决办法
7974
查看次数

如何在selectOneMenu中对selectItems进行分组

我想使用primefaces 展示中的示例来对selectOneMenu中的selectItems进行分组:

<h:outputText value="Grouping: " />  
    <p:selectOneMenu value="#{formBean.car}">  
        <f:selectItem itemLabel="Select One" itemValue="" />  
        <f:selectItems value="#{formBean.cars}" />  
    </p:selectOneMenu> 
Run Code Online (Sandbox Code Playgroud)

我的问题是,没有实现bean.现在我不知道,如何在getCars()方法中实现selectItems的分组.我找不到任何其他的例子.

selectonemenu primefaces jsf-2

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

selectOneMenu(Primefaces)中不同颜色的选项

我需要在Primefaces中显示不同颜色的选项.

我有一个带有动态项目的selectOneMenu(列表)

<p:selectOneMenu id="carMenu" style="margin-top:4px;"
    value="#{Bean.selectedCar}" effect="fade"
    autoupdate="true">
    <f:selectItems id="carsId"
        value="#{myBean.allCars}" var="carItems"
        itemLabel="#{carItems.name}" itemValue="#{carItems}" />
</p:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
 private List<Cars> allCars;
Run Code Online (Sandbox Code Playgroud)

如果汽车出售,我需要显示选项RED的背景,否则黑色.在我的模型中,我得到了一个属性,如果汽车出售与否,它会给我一个值(布尔售出).

如何在selectOneMenu中设置颜色?

jsf selectonemenu primefaces jsf-2

9
推荐指数
1
解决办法
8852
查看次数

h:带有布尔项的selectOneMenu不能使用空值

我正在使用JSF 2.0,JBoss 7.1.1 Final,我遇到了selectOneMenu的问题.我希望能够将托管bean中的字段设置为true/false/null.因此,我创建了以下selectOneMenu:

<h:selectOneMenu value="#{personList.criteria.registrationComplete}" >
    <f:selectItem itemValue="#{null}" itemLabel="Any.." />
    <f:selectItem itemValue="true" itemLabel="Yes"/>
    <f:selectItem itemValue="false" itemLabel="No"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

现在,如果我选择'Any ..',它将为registrationComplete字段(布尔值)分配"false".所以null被解释为false.我还尝试在selectItem中使用布尔值,即:

 <h:selectOneMenu value="#{personList.criteria.registrationComplete}" >
    <f:selectItem itemValue="#{null}" itemLabel="Any.." />
    <f:selectItem itemValue="#{true}" itemLabel="Yes"/>
    <f:selectItem itemValue="#{false}" itemLabel="No"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

我还在faces-config中注册了转换器,如下所示:

<converter>  
    <converter-id>booleanConverter</converter-id>  
    <converter-class>javax.faces.convert.BooleanConverter</converter-class>  
</converter>
Run Code Online (Sandbox Code Playgroud)

并试图使用它:

<h:selectOneMenu value="#{personList.criteria.registrationComplete}" >
    <f:selectItem itemValue="#{null}" itemLabel="Any.." />
    <f:selectItem itemValue="true" itemLabel="Yes"/>
    <f:selectItem itemValue="false" itemLabel="No"/>
        <f:converter converterId="booleanConverter"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

但是所有这些尝试都导致了相同的行为 - 当选择空值时,它被解释为false.

我调试了它,在堆栈跟踪中我找到了它发生的位置.在AstValue.setValue(EvaluationContext, Object) line: 204

它叫

ELSupport.coerceToType(value, targetClass)
Run Code Online (Sandbox Code Playgroud)

value参数为null,targetClass为Boolean.然后,此coerceToType方法返回false.

任何想法如何解决这个问题?谢谢!

boolean el selectonemenu jsf-2

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

如何将工具提示添加到f:selectItems

例如,f:selectItems组件在某些版本的JSF中不支持title属性.

是否可以使用JSFC替换纯HTML对应的JSF组件并执行类似的操作?

   <select jsfc="h:selectOneMenu" value="#{cc.data}">
     <option jsfc="f:selectItems" value="${cc.listItems}" var="item" title="#{item.tooltip}"></option>
   </select>
Run Code Online (Sandbox Code Playgroud)

代替

   <h:selectOneMenu value="#{cc.data}">
     <f:selectItems value="#{cc.listItems}" />
   </h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

完全如此,用上面的替换后者,我得到了"<f:converter> Parent not an instance of ValueHolder: javax.faces.component.html.HtmlPanelGroup"Facelet TagExceptions

jsf tooltip selectonemenu

8
推荐指数
1
解决办法
5904
查看次数

重置子p:selectOneMenus在ap:dataTable中为空,当选择其父列表中的标签项时

在MySQL数据库中有三个表category,sub_categorybrand(制造商)其中category是其余的父,即sub_categorybrand.我希望,菜单之间的关系可以根据表关系更清晰.

所有三个<p:selectOneMenu>都被放置<p:dataTable>在三个相应的列中,如下所示<p:column>.我忽略<p:column>,<p:cellEditor>,<f:facet name="output">,<f:facet name="input">,<p:rowEditor>和所有这些滋扰赘述.

row对应于这是一个JPA管理实体product在这种情况下,通过指定var="row"<p:dataTable>关联的.

这是实际的问号:当一个项目(第一个)null的值categoryList被选择(母公司),其子清单subCategoryListbrandList应该休息了个空.

分类清单:

<p:selectOneMenu id="categoryList"
                 value="#{row.category}"
                 required="#{param['javax.faces.source'] ne component.clientId}">

    <f:selectItem itemLabel="Select"
                  itemValue="#{null}"/>
    <!-- When this item is selected, its children below should be reset to empty. -->

    <f:selectItems var="category"
                   value="#{productManagedBean.categories}"
                   itemLabel="Select"
                   itemValue="#{category}"/> …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu primefaces

8
推荐指数
1
解决办法
411
查看次数

h:selectOneMenu onchange ="submit()"immediate ="true"不会跳过其他输入的验证

我无法在h:selectOneMenu不验证其他输入的情况下立即提交.这是代码:

<h:selectOneMenu value="#{a.avalue}" onchange="submit()" immediate="true">   
    <f:selectItems value="#{b.bvalue}" var="k" itemLabel="#{k.asdad}"  
        itemValue="#{k.asdad}"/>   
</h:selectOneMenu>   
<h:inputText id="sada" value="#{c.cvalue}" required="true"  
    requiredMessage="*asdadadadasd"  
    validatorMessage="*asdsadadadadad">   
    <f:validateLength maximum="80"/>   
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

当我更改菜单值时,其他输入的验证器仍然会激活.我怎么能否认呢?

selectonemenu jsf-2

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

Primefaces依赖selectOneMenu和required ="true"

在我的应用程序中,我有三个下拉菜单(p:selectOneMenu),例如A,B,C.其中两个是依赖的,比如B和C.通过更改BI的值,我动态地将值加载到C.还有一个文本框.当on-change事件从这三个下拉列表触发时,文本框的值由ajax生成.

这是xhtml:

<p:selectOneMenu id="customerMenu" value="#{adminController.activityDTO.customerId}" required="true" label="Customer Name" style="width: 200px">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItems value="#{adminController.customers}" var="customer" itemLabel="#{customer.customerName}" itemValue="#{customer.customerId}" />
    <p:ajax listener="#{adminController.generateActivityName}" update="activityId" />                       
</p:selectOneMenu>

<p:selectOneMenu id="activityTypeMenu" value="#{adminController.activityDTO.activityParentType}" required="true" label="Activity Type"
    style="width: 200px">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItems value="#{adminController.activityTypes}" var="activityType" itemLabel="#{activityType.parent}" itemValue="#{activityType.parent}" />
    <p:ajax listener="#{adminController.updateDependentActivity}" update="activitySubType" />
</p:selectOneMenu>

<p:selectOneMenu id="activitySubTypeMenu" value="#{adminController.activityDTO.activitySubType}" required="true" label="Activity Sub Type"
    style="width: 200px">
    <f:selectItem itemLabel="Select One" itemValue="" />
    <f:selectItems value="#{adminController.activitySubTypes}" var="activityType" itemLabel="#{activityType.name}" itemValue="#{activityType.id}" />
    <p:ajax listener="#{adminController.generateActivityId}" update="activityId" />
</p:selectOneMenu>

<p:inputText id="activityId" autocomplete="off" …
Run Code Online (Sandbox Code Playgroud)

jsf selectonemenu primefaces jsf-2

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

在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
查看次数