2014-09-04 58 views
1

我有一個Facelets頁面,我有一個p:inputText字段供學生ID使用。我在這個輸入文本字段旁還有一個p:commandButton,我希望當我點擊這個按鈕時,隨後會生成一個隨機的學生ID並顯示在這個文本字段中。我的Facelets文件中的代碼是:點擊按鈕更新輸入文本字段

<td width="15%"><p:inputText id="Student ID" value="#{StudentData.id}"></p:inputText></td> 
<td width="13%"><p:commandButton value="Generate ID" action="#{StudentID.id}" ajax="false" > </p:commandButton></td> 

StudentID.id包含生成隨機數作爲代碼:

public class StudentID implements Serializable { 

    private int id; 
    public StudentID() { 

    } 


    public int getId() { 
      return id; 
     } 

    @PostConstruct 
     public void init() { 

     Random r = new Random(); 
     int Low = 10; 
     int High = 10000; 
     id = r.nextInt(High-Low) + Low; 
    } 

} 

代碼生成隨機ID,但我怎麼能更新的Facelets頁面上輸入文本字段隨機ID?我基本上希望當我點擊「生成ID」按鈕時,它旁邊的輸入文本字段應該隨着生成的隨機數更新。

回答

4
<h:form id="RandomIDGenerationForm"> 

<h:panelGroup id="StudentIDGeneration"> 
    <h:inputText id="Student ID" value="#{StudentData.id}"></p:inputText> 
</h:panelGroup> 
<p:commandButton value="Generate ID" action="#{StudentData.generateRandomID()}" update="StudentIDGeneration"> </p:commandButton> 

</form> 

// Managed Bean的

public class StudentData implements Serializable { 

    private int id; 
    public StudentData() { 
    //default contructor 
    } 

    public int getId() { 
     return id; 
    } 

    public void generateRandomID() { 
    Random r = new Random(); 
    int Low = 10; 
    int High = 10000; 
    id = r.nextInt(High-Low) + Low; 
    } 
} 
相關問題