زر في الحوار لا يدخل في وظيفة أعلن في الفول
-
21-12-2019 - |
سؤال
المشكلة هي أنه عندما في مربع الحوار أنا انقر فوق الزر مع قيمة "إضافة" وظيفة "إضافة" في الفول لا يسمى( لاحظت ذلك مع 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"/>
عليك فقط معالجة بيانات الحوار.
الحل:تغيير الطلباتتكيف إلى فيوسكوبيد (تعليقات)
لا تنتمي إلى StackOverflow