문제

문제는 "추가"값이있는 버튼을 클릭하면 "Add"기능이 "system.out로 IT"를 알아 차리지 않아야합니다.대화 상자에서 버튼 조치를 사용할 수 없기 때문에 대화 상자의 다른 대화 상자의 제한 사항이 있음을 제한하는 것입니까?누군가가 나를 도울 수 있기를 바랍니다.감사합니다. 내 xhtml 페이지가 있습니다 :

<!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://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">


<h:head>
    <title>Add a Confirmed Package</title>
</h:head>
<h:body>
    <h:form id="form">




                <p:dataTable id="packages" var="defpack" value="#{addConfirmedPackageBean.defpackagesDTO}" rowKey="#{defpack.name}"
                        selection="#{addConfirmedPackageBean.packageSelected}" selectionMode="single">

                        <f:facet name="header">  
            Click "View" button after selecting a row to see details  
        </f:facet>

                        <p:column headerText="NamePackage">  
                        #{defpack.name}  
                        </p:column>

                         <p:column style="width:4%">  
                         <p:commandButton id="selectButton" update=":form:display" oncomplete="PF('Personalizza').show()" icon="ui-icon-heart" title="Modify" action="#{addConfirmedPackageBean.savelocation()}">  
                <f:setPropertyActionListener value="#{defpack}" target="#{addConfirmedPackageBean.packageSelected}"  />  
            </p:commandButton>  
        </p:column>     

                        <f:facet name="footer">
                            <p:commandButton id="viewButton" value="Scelgo"
                                icon="ui-icon-search" update=":form:display"
                                action="#{addConfirmedPackageBean.fine()}" />
                        </f:facet>

                    </p:dataTable>





<p:dialog id="Personalizzazione" header="Personalizza Pacchetto" widgetVar="Personalizza" resizable="false"  
              width="400" showEffect="clip" hideEffect="fold">  

        <h:panelGrid id="display" columns="2" cellpadding="4">  

        <h:outputLabel for="Flight">Personalizza il tuo flight:</h:outputLabel>
                <h:selectOneMenu for="Flight" value="#{addConfirmedPackageBean.fly}">
                    <f:selectItems id="Flight"
                        value="#{addConfirmedPackageBean.elelislocationflightPacchetto}" var="ElementDTO"
                        itemValue="#{ElementDTO.name}" itemLabel="#{ElementDTO.name}" />
                </h:selectOneMenu>

        <h:outputLabel for="Hotel">Personalizza il tuo Hotel:</h:outputLabel>
        <h:selectOneMenu for="Hotel" value="#{addConfirmedPackageBean.hotel}">
        <f:selectItems id="Hotel"
                        value="#{addConfirmedPackageBean.elelislocationhotelPacchetto}" var="ElementDTO"
                        itemValue="#{ElementDTO.name}" itemLabel="#{ElementDTO.name}" />
        </h:selectOneMenu>
            </h:panelGrid>
        <p:commandButton id="Bottone" value="Add" update="display" action="#{addConfirmedPackageBean.Add()}"/>  


    </p:dialog>

    </h:form>
</h:body>

</html>
.

및 my bean :

   package beans;

    import java.util.ArrayList;

    import javax.annotation.PostConstruct;
    import javax.ejb.EJB;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;








    import confirmedPackageManagement.ConfirmedPackageMgr;
    import confirmedPackageManagementDTO.ConfirmedPackageDTO;
    import elementManagement.ElementMgr;
    import elementManagementDTO.ElementDTO;
    import DefaultPackageManagement.DefaultPackageMgr;
    import DefaultPackageManagementDTO.DefaultPackageDTO;

    @ManagedBean(name="addConfirmedPackageBean") //come viene richiamato 
    @RequestScoped
    public class AddConfirmedPackageBean {

        @EJB
        private DefaultPackageMgr defpackMgr;

        @EJB
        private ConfirmedPackageMgr confpackMgr;

        @EJB
        private ElementMgr eleMgr;

        private ArrayList<DefaultPackageDTO>  defpackagesDTO;
        private DefaultPackageDTO packageSelected;
        private ArrayList<ElementDTO> elelislocationflightPacchetto;
        private ArrayList<ElementDTO> elelislocationhotelPacchetto;
        private String locationSelected;
        private String name;
        private String fly;
        private String hotel;
        private ConfirmedPackageDTO confpackageDTO;
        private ArrayList<ElementDTO> elements;

        public AddConfirmedPackageBean(){
            confpackageDTO=new ConfirmedPackageDTO();
            this.elements=new ArrayList<ElementDTO>();
            this.packageSelected=new DefaultPackageDTO();
        }
        @PostConstruct
        public void init()
        {
        this.setDefpackagesDTO(defpackMgr.getAllDefaultPackage());


        }

        public void savelocation(){
            this.locationSelected=this.packageSelected.getLocation();
            this.setElelislocationflightPacchetto(eleMgr.getAllFlightsByLocation(locationSelected));
            this.setElelislocationhotelPacchetto(eleMgr.getAllHotelsByLocation(locationSelected));
            System.out.println("cazzo il mio pacchetto ha location  ");
        }
        public ArrayList<ElementDTO> getElelislocationhotelPacchetto() {
            return elelislocationhotelPacchetto;
        }

        public void setElelislocationhotelPacchetto(
                ArrayList<ElementDTO> elelislocationhotelPacchetto) {
            this.elelislocationhotelPacchetto = elelislocationhotelPacchetto;
        }

        public ArrayList<ElementDTO> getElelislocationflightPacchetto() {
            return elelislocationflightPacchetto;
        }

        public void setElelislocationflightPacchetto(
                ArrayList<ElementDTO> elelislocationflightPacchetto) {
            this.elelislocationflightPacchetto = elelislocationflightPacchetto;
        }



        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getLocationSelected() {
            return locationSelected;
        }

        public void setLocationSelected(String locationSelected) {
            this.locationSelected = locationSelected;
        }


        public DefaultPackageDTO getPackageSelected() {
            return packageSelected;
        }

        public void setPackageSelected(DefaultPackageDTO packageSelected) {
            this.packageSelected = packageSelected;
        }

        public ArrayList<DefaultPackageDTO> getDefpackagesDTO() {
            return defpackagesDTO;
        }

        public void setDefpackagesDTO(ArrayList<DefaultPackageDTO> defpackagesDTO) {
            this.defpackagesDTO = defpackagesDTO;
        }

        public String fine(){


            return "/employee/index?faces-redirect=true";
        }

        public String Add(){
            System.out.print("il pacchetto confermato ha il nome ");
            System.out.print("il pacchetto confermato ha il nome "+this.confpackageDTO.getName());
            this.AssignElemFlyFromSelection();
            this.AssignElemHotelFromSelection();
            this.confpackageDTO.setName(this.packageSelected.getName());
            this.confpackageDTO.setLocation(this.packageSelected.getLocation());
            this.confpackageDTO.setElem(this.elements);
            System.out.print("il pacchetto confermato ha il nome "+this.confpackageDTO.getName());
            System.out.print("il pacchetto confermato ha la location "+this.confpackageDTO.getLocation());
            System.out.print("il pacchetto confermato ha l'hotel "+this.confpackageDTO.getElem().get(0).getName());
            System.out.print("il pacchetto confermato ha il volo "+this.confpackageDTO.getElem().get(1).getName());
            this.confpackMgr.save(this.confpackageDTO);
            return "/employee/index?faces-redirect=true";

        }

        public String getFly() {
            return fly;
        }

        public void setFly(String fly) {
            this.fly = fly;
        }

        public String getHotel() {
            return hotel;
        }

        public void setHotel(String hotel) {
            this.hotel = hotel;
        }
         private void AssignElemFlyFromSelection()
            {
                for (ElementDTO elem:this.elelislocationflightPacchetto)
                {
                    if(elem.getName().equals(this.fly))
                    {
                        this.elements.add(elem);
                    }
                }
            }

            private void AssignElemHotelFromSelection()
            {
                for (ElementDTO elem:this.elelislocationhotelPacchetto)
                {
                    if(elem.getName().equals(this.hotel))
                    {
                        this.elements.add(elem);
                    }
                }
            }
    }
.

도움이 되었습니까?

해결책

<p:commandButton id="Bottone" value="Add" update="display" actionListener="#{addConfirmedPackageBean.Add()}" process=":form:display,:form:packages,@this"/> 
.

대화 상자 데이터를 처리해야합니다.

솔루션 : ViewScoped (댓글)

에 requestScoped 변경

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top