2013-07-31 18 views
1

Iam使用ajax調用對話框,我的問題是我在對話框中定義了一個表單並接受數據,當我點擊保存時我想要我的Bean中的細節。如何訪問bean中的表單對象

我的問題:1)當我點擊保存按鈕時,它不會命中Bean。 2)iam無法在我的bean中訪問此表單的對象。

感謝提前:)

我的JSF文件

<h:form id="outCompForm"> 
    <table border="0" class="InnerBox" width="60%"> 
       <tr><th colspan="7" align="Center" class="clsTitle">OUTBOUND COMPLAINTS</th></tr> 
       <tr> 
        <td>Consignment No </td> 
        <td>Consignor Branch</td> 
        <td>Consignor </td> 
        <td>Contact No </td> 
        <td>Remark</td> 
       </tr> 
       <tr> 
        <td><h:inputText id="acno" value="#{outBound.accNo}" onfocus="this.select()" styleClass="formText" /></td> 
        <td> 
          <h:selectOneMenu value="#{outBound.cnor_Branch}" id="fcoBran" styleClass="formText" > 
           <f:selectItems value="#{outBound.cnor_BranchLi}" var="c" /> 
          </h:selectOneMenu> 
         </td> 
         <td> 
          <p:selectOneMenu value="#{outBound.cnor_Name}" id="fCnNam" editable="true"> 
           <f:selectItem itemLabel="Select One" itemValue="" /> 
           <f:selectItems value="#{outBound.cnor_NameLi}" /> 
          </p:selectOneMenu> 
         </td> 
         <td><h:inputText id="fcoCont" value="#{outBound.cnor_Contact}" onfocus="this.select()" styleClass="formText" /></td> 
         <td><h:inputText id="fremark" value="#{outBound.remark}" onfocus="this.select()" styleClass="formText" /></td> 
        </tr> 
        <tr> 
         <td>Consignee Branch</td> 
         <td>Consignee Name </td> 
         <td>Address</td> 
         <td>Contact No</td> 
         <td >Booking Date </td> 
        </tr> 
        <tr> 
         <td> 
          <h:selectOneMenu value="#{outBound.cnee_Branch}" id="fceBran" styleClass="formText" > 
           <f:selectItems value="#{outBound.cnee_BranchLi}" var="c" /> 
          </h:selectOneMenu> 
         </td> 
         <td><h:inputText id="fceName" value="#{outBound.cnee_Name}" onfocus="this.select()" styleClass="formText" /></td> 
         <td><h:inputText id="fceAdr" value="#{outBound.cnee_Addr}" onfocus="this.select()" styleClass="formText" /></td> 
         <td><h:inputText id="fceCnt" value="#{outBound.cnee_Contact}" onfocus="this.select()" styleClass="formText" /></td> 
         <td> <p:calendar value="#{outBound.booking_Date}" id="fBDat" > </p:calendar> </td> 
         <td> <h:commandButton value="Save" action="#{outBound.saveAction}" onclick="return validate()" /> </td> 
        </tr> 
        <tr> 
         <td colspan="7"> 

          <h:message for="acno"/> 
         </td> 
        </tr> 
       </table> 
       <p:growl id="growl" showDetail="true"/> 
       <p:dataTable id="tbl" var="o" value="#{ outBound.tick_List}" 
          paginator="true" rows="10" rowsPerPageTemplate="5,10,15" 
          rowKey="#{o.accNo}" selection="#{outBound.outSelected}" selectionMode="single" > 

        <p:ajax event="rowSelect" listener="#{outBound.onRowSelect}"  
          update=":outCompForm:display :outCompForm:growl" oncomplete="AccDialog.show()" /> 

        <p:column headerText="Booking Date" sortBy="#{o.date_conv}"> 
         <h:outputText value=" #{o.date_conv.substring(0, 10)}" /> 
        </p:column> 
        <p:column headerText="Consignment No" sortBy="#{o.accNo}"> 
         <h:outputText value=" #{o.accNo}" /> 
        </p:column> 
        <p:column headerText="Con Branch" sortBy="#{o.cnor_Branch}"> 
         <h:outputText value=" #{o.cnor_Branch}" /> 
        </p:column > 
        <p:column headerText="Consignor" sortBy="#{o.cnor_Name}"> 
         <h:outputText value=" #{o.cnor_Name}" /> 
        </p:column> 
        <p:column headerText="Con Contact" sortBy="#{o.cnor_Contact}"> 
         <h:outputText value=" #{o.cnor_Contact}" /> 
        </p:column> 
        <p:column headerText="Remarks" sortBy="#{o.remark}"> 
         <h:outputText value=" #{o.remark}" /> 
        </p:column> 
        <p:column headerText="Cnee Branch" sortBy="#{o.cnee_Branch}"> 
         <h:outputText value=" #{o.cnee_Branch}" /> 
        </p:column> 
        <p:column headerText="Cnee Name" sortBy=" #{o.cnee_Name}"> 
         <h:outputText value=" #{o.cnee_Name}" /> 
        </p:column> 
        <p:column headerText="Cnee Addr" sortBy="#{o.cnee_Addr}"> 
         <h:outputText value=" #{o.cnee_Addr}" /> 
        </p:column> 
        <p:column headerText="Cnee Contact" sortBy="#{o.cnee_Contact}"> 
         <h:outputText value=" #{o.cnee_Contact}" /> 
        </p:column> 


       </p:dataTable> 



       <p:dialog id="dialog" header="Complaint Details" widgetVar="AccDialog" resizable="false" appendToBody="true" 
          showEffect="fade" hideEffect="slide"> 
        <h:panelGrid id="display" columns="2" cellpadding="4"> 
         <h:form id="formtrans"> 
          <table border="0" class="PopupBox" > 
           <tr> 
            <td>Consignment No.</td> 
            <td colspan="3"> <h:outputText value="#{outBound.outSelected.accNo}" /> </td> 
           </tr> 
           <tr class="FormLabel" > 
            <td>Detail</td> 
            <td>Suggestion</td> 
            <td>Privacy</td> 
            <td>Status</td> 
           </tr> 
           <tr> 
            <td><h:inputTextarea id="fdetail" value="#{outBound_trans.details}" onfocus="this.select()" styleClass="formText" /></td> 
            <td><h:inputTextarea id="fsuggest" value="#{outBound_trans.suggest}" onfocus="this.select()" styleClass="formText" /></td> 
            <td> 
             <h:selectOneMenu value="#{outBound_trans.privacy}" id="fpriv" styleClass="formText" > 
              <f:selectItems value="#{outBound_trans.privacyLi}" var="c" /> 
             </h:selectOneMenu> 
            </td> 
            <td> 
             <h:selectOneMenu value="#{outBound_trans.status}" id="fstatus" styleClass="formText" > 
              <f:selectItems value="#{outBound_trans.statusLi}" var="c" /> 
             </h:selectOneMenu> 
            </td> 


           </tr> 
           <tr> 
            **<td> <h:commandButton value="Save" action="#{outBound_trans.saveTrans}" onclick="return validate1()" /> </td> ** 
          </tr> 
       </table> 

      </h:form> 
     </h:panelGrid> 
    </p:dialog> 
</h:form> 

出境豆

@ManagedBean(name = "outBound") 
@SessionScoped 
public class OutBound implements Serializable { 

private String dataBase, finYear; 
private int userCode, cnt = 0, ticketNo; 
private String accNo, cnor_Branch, cnor_Name, cnor_Contact, cnee_Branch, cnee_Name, cnee_Addr, cnee_Contact, message = "Error"; 

private String cnor_Addr, cnor_Email, cnee_Email, remark; 
private Date booking_Date; 
private int cnee_branchCode, cnor_Code; 
private ArrayList cnor_BranchLi = new ArrayList(); 
private ArrayList cnee_BranchLi = new ArrayList(); 
private ArrayList cnor_NameLi = new ArrayList(); 
DataFetch fetch; 
DataConnect dataPush; 
FacesMessage doneMessage = null; 
ResultSet rs; 
private ArrayList<OutBoundB> Tick_List; 
Connection con; 
Statement stat; 
PreparedStatement pstat; 
DBConnection dbconn = new DBConnection(); 
Utility dateFetch = new Utility(); 
private OutBoundB outSelected; 


public OutBound() { 
    FacesContext ctx = FacesContext.getCurrentInstance(); 
    HttpSession session = (HttpSession) ctx.getExternalContext().getSession(false); 
    this.dataBase = (String) session.getAttribute("dataBase"); 
    this.finYear = (String) session.getAttribute("FinYear"); 
    this.userCode = (Integer) session.getAttribute("userCode"); 

    if (this.dataBase == null) { 
     doneMessage = new FacesMessage("Session Expired"); 
    } else { 
     fetch = new DataFetch(this.dataBase); 
     cnor_BranchLi = fetch.getArrayString("select subbranchcode from subbranch order by subbranchcode"); 
     cnor_NameLi = fetch.getArrayString("Select FirmName from accountscustomer where flag='Acti' order by FirmName"); 
     cnee_BranchLi = fetch.getArrayString("select distinct city from destinationmaster order by city"); 
     addList(); 
     fetch.closeAll(); 
    } 


} 

public String saveTicketOut() { 
    // program to save to database 
} 

public String saveAction() { 
    //validation before saving 
    return null; 
} 



public void onRowSelect(SelectEvent event) { 
FacesMessage msg = new FacesMessage("Acc Selected", ((OutBoundB) event.getObject()).getAccNo()); 
    FacesContext.getCurrentInstance().addMessage(null, msg); 
} 

public void onRowUnselect(UnselectEvent event) { 
    FacesMessage msg = new FacesMessage("Acc Unselected", ((OutBoundB) event.getObject()).getAccNo()); 
    System.out.println("entered unselect"); 
    FacesContext.getCurrentInstance().addMessage(null, msg); 
} 


public static class OutBoundB { 
    private int cnor_branchCode, cnee_branchCode, cnor_Code, userCode, ticketNo; 
    private String accNo, cnor_Branch, cnor_Name, cnor_Contact, cnee_Branch, cnee_Name, cnee_Addr, cnee_Contact,date_conv; 
    private String cnor_Addr, cnor_Email, cnee_Email, remark, type, escala; 
    private Date booking_Date, ticket_Date; 
    Utility dateFetch1 = new Utility(); 

    public OutBoundB() { 
    } 

    public OutBoundB(String conBran, String conNam, String cnoCnt, String acno, String cneeBran, String cneeNam, String cneAdd, String cneeCnt, Date boDate) { 
     this.accNo = acno; 
     this.cnor_Branch = conBran; 
     this.cnor_Name = conNam; 
     this.cnor_Contact = cnoCnt; 
     this.cnee_Name = cneeNam; 
     this.cnee_Branch = cneeBran; 
     this.cnee_Addr = cneAdd; 
     this.cnee_Contact = cneeCnt; 
     this.date_conv = dateFetch1.setCorrectDate(boDate); 
     this.booking_Date = boDate; 
    } 
} 
} 

//我已經刪除了所有的getter和setter outBound_trans豆

@ManagedBean(name = "outBound_trans") 
@SessionScoped 
public class OutBoundTrans { 

private String dataBase, finYear, userName; 
private int userCode; 
private String details, suggest, privacy, status,message; 
private ArrayList statusLi = new ArrayList(); 
private ArrayList privacyLi = new ArrayList(); 
// 
DataFetch fetch; 
Connection con; 
Statement stat; 
PreparedStatement pstat; 
DBConnection dbconn = new DBConnection(); 
Utility dateFetch = new Utility(); 
// 

public void saveTrans() { 

System.out.println(this.details); 
if(this.details==null){ 
     System.out.println("save trans"); 
}else{ 
     System.out.println(this.details); 
} 
    // code to validate and save 
} 

public class outboundTransB { 

    private int ticketNo, responseCount; 
    private Date resp_Date; 
    private String oeBrach, deBranch, details, suggest, ticketType, flag, privacy; 
    } 
} 
+0

您的'outBound_trans' bean是否被創建? –

+0

@XtremeBiker:是的,我有兩個豆,我應該上傳豆 –

+0

嗨有任何幫助 –

回答

1

查看您的代碼後,我注意到您有嵌套表格!這是非常糟糕的,可能會產生不可預知的行爲。如果問題仍然存在,請修復並再次測試。

其他信息

如果你的問題是檢索我建議在尋找某種形式的價值的能力:

String value = FacesContext.getCurrentInstance().getExternalContext() 
.getRequestParameterMap().get("myInputField"); 

內正被調用的方法。這應該讓你從表單中的方法獲得任何值。

+0

Iam無法從我的對話框中訪問savetrans。

+0

我編輯了我的答案。 – bjedrzejewski

+0

謝謝你......你在這上面:) @ jedrus07 –