Вызов Enums из другого проекта не отображается внутри p: selectOneRadio - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть java проект приложения, я использую его как базовую библиотеку. Внутри у меня есть несколько моделей и класс EnumBean с перечислениями. Я добавил эту банку в веб-проект Maven. Все выглядит хорошо, но когда я запускаю веб-приложение, на странице кнопка selectOneRadio не показывает значения перечисления. Так что selectOneRadio поставляется с пустым

Но до этого, когда класс enumbean был в веб-проекте, все было хорошо. Когда я несу их в библиотеку, он не выдает ошибку, но не показывает перечисления на странице.

Можете ли вы мне помочь?

Код:

В другом проекте у меня есть класс EnumBean ..

@ManagedBean
@ApplicationScoped
public class EnumBean {

    public enum State {
        @SerializedName("0")
        PASSIVE("Passive"),
        @SerializedName("1")
        ACTIVE("Active");

        private final String name;

        private State(String name) {
            this.name = name;
        }

        public String getName() {
            return this.name;
        }
    }

    public State[] getStateValues() {
        return State.values();
    }
}

И внутри другого проекта ..

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets
        <h:form>
            <br/>
            <br/>

            <p:selectOneMenu id="xyz" value="#{welcomeView.selectedState}" style="width:125px">
                <f:selectItems  value="#{enumBean.stateValues}" var="stateValue" itemLabel="#{stateValue.name}" itemValue="#{stateValue}" />
                <p:ajax event="change" listener="#{welcomeView.someFunc()}"/>
                <p:ajax update="xyz"/>
            </p:selectOneMenu>

            <br/>
            <br/>


            <p:outputLabel for="stateTry" value="State :"/> 
            <p:selectOneRadio id="stateTry" value="#{welcomeView.selectedState2}" layout="grid" columns="1" >
                <f:selectItems value="#{enumBean.stateValues}" var="stateValue" itemLabel="#{stateValue.name}" itemValue="#{stateValue}" />
            </p:selectOneRadio>

        </h:form>

    </h:body>
</html>

package view;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;

@ManagedBean
@ViewScoped
public class WelcomeView implements Serializable {

    private EnumBean.State selectedState;
    private EnumBean.State selectedState2;

//Some Getter Setter..



    @PostConstruct
    public void init() {

    }

    public void someFunc(final AjaxBehaviorEvent event) {

        System.out.println("------");
        if (selectedState.ordinal() == EnumBean.State.ACTIVE.ordinal()) {
            System.out.println("active");
        }  else {
            System.out.println("passive");
        }
    }

//Some functions

}

Спасибо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...