【问题标题】:JSF - PrimeFaces , How to get the value of a booleanCheckbox / booleanButton in a listJSF - PrimeFaces,如何在列表中获取 booleanCheckbox / booleanButton 的值
【发布时间】:2012-07-30 22:47:15
【问题描述】:

我有一个 jsf 页面,我无法更新 userDamain 对象列表中某些复选框的值,实际上这是我的 jsf 页面的一部分:

    <h:outputText value="USER's rights list: "></h:outputText>
    <p:dataTable id="userss" var="userr" value="#{userMB.userListe}">

        <p:column>
            <f:facet name="header"><h:outputText value="FirstName" /></f:facet>                     
            <h:outputText value="#{userr.firstName}"  />                    
    </p:column>


    <p:column>
        <h:panelGrid columns="1" style="margin-bottom:10px" cellpadding="5">  
                <h:outputText value="Basic Usage: " />  
                <p:selectBooleanCheckbox value="#{userr.deletee}" immediate="true" actionListener="#{userr.deletee}"  />      
            </h:panelGrid> 

            <p:commandButton value="Submit" update="display" oncomplete="dlg.show()" />  
            <p:dialog header="Selected Values" modal="true" showEffect="fade" hideEffect="fade" widgetVar="dlg">  
                <h:panelGrid columns="1" id="display">  
                    <h:outputText value="Value 1: #{userr.deletee}" />  
                </h:panelGrid>  
            </p:dialog>      


    </p:column>

当我单击布尔按钮“提交”时,userr.deletee 的值始终为 false(默认值)并且无论如何都不会更新,我尝试在 booleanButton 中使用 Listner 和 actionListener 但它没有不工作,我也尝试了 postValidate 事件,所以如果有人对此有任何想法,我会很优雅。

这是我的托管 bean 的一部分:

private List<UserDomain> userListe ;


    public List<UserDomain> getUserListe() {
        return this.userListe;
    }

    public void loadUserListe(){
        this.userListe = new ArrayList<UserDomain>();
        this.userListe.addAll(getUserServicee().getAll());
    }


    public void setUserListe(List<UserDomain> userListe) {
        this.userListe = userListe;
    }

userDomain bean 的一部分:

...
public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
@Transient
    private boolean deletee;

    public boolean isDeletee() {
        return deletee;
    }

    public void setDeletee(boolean deletee) {
        this.deletee = deletee;
    }

【问题讨论】:

    标签: jsf jakarta-ee primefaces


    【解决方案1】:

    我找到了一个对我来说似乎合乎逻辑的解决方案,我在复选框中添加了一个 ajax 行为来执行一个方法和一个在此方法中调用以获取整个 userDomain 对象的属性,所以我可以得到 @ 987654322@值,这里是我说的部分代码:

    <h:panelGrid columns="1" style="margin-bottom:10px" cellpadding="5">  
                        <h:outputText value="Delete Right: " />  
    
                        <p:selectBooleanCheckbox value="#{userr.deletee}">  
                            <f:ajax execute="@this" listener="#{userMB.saveUserRights}" />
                            <f:attribute name="user" value="#{userr}" />
                        </p:selectBooleanCheckbox> 
    
                    </h:panelGrid> 
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多