Jsf 如何设置

Jsf 如何设置,jsf,Jsf,这是我在xhtml中的代码和在backingbean中的代码。如何设置“项目标签所有值”以搜索所有值 <h:selectOneRadio value="#{faPrincipiaCntrprtyList.activeFlag}"> <f:selectItem itemLabel="Active" itemValue="1"/> <f:selectItem itemLabel="InActive" itemValue="0" /> <

这是我在xhtml中的代码和在backingbean中的代码。如何设置“项目标签所有值”以搜索所有值

<h:selectOneRadio value="#{faPrincipiaCntrprtyList.activeFlag}">
    <f:selectItem itemLabel="Active" itemValue="1"/>
    <f:selectItem itemLabel="InActive" itemValue="0" />
    <f:selectItem itemLabel="All" itemValue="????"/> 
</h:selectOneRadio>
下面是支持bean

public class FaPrincipiaCntrprtyList extends
        FaPrincipiaCntrprtyQuery<FaPrincipiaCntrprty> {

    static Logger logger = Logger.getLogger(FaPrincipiaCntrprtyList.class.getName());

    private static final long serialVersionUID = 1L;

    private byte activeFlag = 1;
    /*List<Byte> activeFlagList = new ArrayList<Byte>();

     public List<Byte> getActiveFlagList() {
     return activeFlagList;
     }

     public void setActiveFlagList(List<Byte> activeFlagList) {
     this.activeFlagList = activeFlagList;
     }*/

    private static final String EJBQL = "select faPrincipiaCntrprty from FaPrincipiaCntrprty faPrincipiaCntrprty";

    private static final String[] RESTRICTIONS = {"lower(faPrincipiaCntrprty.cntrprtyCode) like lower(concat(#{faPrincipiaCntrprtyList.faPrincipiaCntrprty.cntrprtyCode},'%'))",
        "faPrincipiaCntrprty.activeFlag = #{faPrincipiaCntrprtyList.activeFlag}",};

    private FaPrincipiaCntrprty faPrincipiaCntrprty = new FaPrincipiaCntrprty();

    public FaPrincipiaCntrprtyList() {
        setEjbql(EJBQL);
        setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
        setMaxResults(10);
    }

    public byte getActiveFlag() {
        return activeFlag;
    }

    public void setActiveFlag(byte activeFlag) {
        if (activeFlag == 2) {
            activeFlag = (Byte) null;
        }
        /*if (activeFlag == 2) {
         activeFlagList.add((byte) 0);
         activeFlagList.add((byte) 1);
         setActiveFlagList(activeFlagList);
         }else{
         activeFlagList.add((byte) activeFlag);
         setActiveFlagList(activeFlagList);
         }*/
        this.activeFlag = activeFlag;
    }

    public FaPrincipiaCntrprty getFaPrincipiaCntrprty() {
        return faPrincipiaCntrprty;
    }

}
您可以将任何值设置为selectAll。最终,您将匹配精确的值并获取所有记录

比方说,我把它赋给了值2

xhtml

注意:这只是为了演示。根据需要更改searchResult类型

<h:form>
    <h:selectOneRadio value="#{faPrincipiaCntrprtyList.activeFlag}">
        <f:selectItem itemLabel="Active" itemValue="1"/>
        <f:selectItem itemLabel="InActive" itemValue="0" />
        <f:selectItem itemLabel="All" itemValue="2"/>
        <f:ajax listener="#{faPrincipiaCntrprtyList.processFlagSelection()}" render=":searchResult"/>
    </h:selectOneRadio>
</h:form>
<h:panelGroup id="searchResult">
    #{faPrincipiaCntrprtyList.searchResult}
</h:panelGroup>
@ManagedBean
@ViewScoped
public class FaPrincipiaCntrprtyList {
    private long activeFlag = 0;
    private String searchResult;

    public void processFlagSelection() {
        if (activeFlag == 2) {
            searchResult = "Featch all result from database.";
        } else {
            searchResult = "Fetch result based on active/inactive";
        }
    }
    //getter and setters
}