2013-07-25 48 views
0
<p:column> 
    <p:commandButton id="selectButton" update="@(form)" oncomplete="userDialog.show()" icon="ui-icon-search" title="View"> 
     <f:setPropertyActionListener value="#{book}" target="#{CreateBookBean.selectedUser}" /> 
    </p:commandButton> 
    </p:column> 
    </p:dataTable> 
</p:outputPanel> 

<p:dialog header="User Detail" modal="true" widgetVar="userDialog" width="200" height="175">                   
    <h:panelGrid columns="2" cellpadding="5"> 
    <h:outputLabel for="fname" value="First Name: " /> 
    <h:outputText id="fname" value="#{CreateBookBean.selectedUser.fname}" /> 
    <h:outputLabel for="lname" value="Last Name: " /> 
    <h:outputText id="lname" value="#{CreateBookBean.selectedUser.lname}" /> 
    <h:outputLabel for="mobileno" value="mobile no: " /> 
    <h:outputText id="mobileno" value="#{CreateBookBean.selectedUser.mobileno}" /> 
    </h:panelGrid> 
</p:dialog> 

我最近遇到這個例子。 數據表正確更新我輸入的值。但是當我想顯示它在對話框中它不顯示任何東西。 我真的不明白爲什麼value =「#{CreateBookBean.selectedUser.fname}」,而不是value =「#{CreateBookBean.fname}」。值不會從數據表傳遞到對話框

這裏是我的Java代碼

public class CreateBookBean { 

    private Book book = new Book(); 
    private List<Book> books = new ArrayList<Book>(); 
    private Book selectedUser; 
    public String reinit() { 
     book = new Book(); 

     return null; 
    } 

setters and getters are included here 
} 
+1

您的問題是否已回答,因此您的問題是否真的解決了?我看到你接受了手冊的答案,但我也在評論中看到,你一直抱怨說它不起作用。在這個答案中,我沒有看到任何反饋意見,表明你的問題真的解決了。答案的接受是非常混亂的。 – BalusC

+0

得到了我的第二個問題的答案。不是第一個。 – Pramoth

+0

我還沒有爲我的第一個問題得到答案。你能幫助我嗎? – Pramoth

回答

0

讓我們把這個問題分成兩部分。

首先

當你想顯示更新的值(例如,用h:outputText),你需要更新此元素。更新這個元素意味着它將獲取它的後臺bean的當前值。 像這樣做:

<p:commandButton ... update="idToUpdate1, idToUpdate2, ..." > 

爲了獲得idToUpdate檢查Naming Container in JSF2/PrimeFaces

如果您有很多需要更新的組件,我會建議將它們分組到一個NamingContainer(例如p:outputPanel)。所以你只需要更新NamingContainer,而不是每一個組件。



#CreateBookBean.selectUser.fname表示: 「抓取CreateBookBean,獲取它的財產selectUser和獲取所謂fnameselectUser屬性」。 在這種情況下,您有這些類的佈局:

public class CreateBookBean { 
    private Book selectedUser; 
    .... 
    public Book getSelectedUser() { 
    return this.selectedUser; 
    } 
} 

public class Book { 
    private String fname; 
    .... 
    public String getFname() { 
    this.fname; 
    } 
} 

#CreateBookBean.fname表示:「抓取CreateBookBean,獲取它的屬性fname」。 在這種情況下,您有這樣的類佈局:

public class CreateBookBean { 
    private String fname; 
    .... 
    public String getFname() { 
    return this.fname; 
    } 
} 

根據這個代碼,你貼出來,我猜測,CreateBookBean有一個名爲selectedUser屬性(代碼顯示它:target="#{CreateBookBean.selectedUser}"),以及selectUser有一個屬性fname

+0

Pramoth

+0

value「book」沒有達到目標。因此在打開的對話框中顯示沒有任何價值! – Pramoth

+0

是「用戶」類型的「書」?如果是這樣,你需要在你的問題中添加額外的代碼才能看到問題。處理過程中是否有任何異常/錯誤消息?發佈它們! – Manuel

0

使用更新屬性在按鈕的使用,以顯示您的數據表中的項目顯示對話框,例如,<p:commandButton update="dialogBoxId" . . ./>

+0

\t value」book「沒有達到目標。因此在打開的對話框中顯示沒有任何價值! - Pramoth剛剛編輯 – Pramoth

相關問題