2014-09-04 68 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; 
    } 
} 
相关问题