سؤال

المشكلة هي أنه عندما في مربع الحوار أنا انقر فوق الزر مع قيمة "إضافة" وظيفة "إضافة" في الفول لا يسمى( لاحظت ذلك مع system.out) وأنا لا أفهم لماذا.هو أن بعض القيود من الحوار التي يجب أن تكون قريبة مع onComplete علامة أو أي شيء آخر??أو ربما لأنني لا أستطيع استخدام إجراء الزر في مربع الحوار?آمل أن يتمكن شخص ما من مساعدتي.يعطيكم الصّحة.لدي صفحة شتمل الخاصة بي:

<!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>

وفول بلدي:

   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"/> 

عليك فقط معالجة بيانات الحوار.

الحل:تغيير الطلباتتكيف إلى فيوسكوبيد (تعليقات)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top