2014-09-04 2 views
1

У меня есть страница Facelets, где у меня есть поле p:inputText для идентификатора студента. У меня также есть p:commandButton рядом с этим текстовым полем ввода, и я хочу, чтобы при нажатии этой кнопки в этом текстовом поле генерировался и отображался случайный идентификатор студента. Мой 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 с этим случайным идентификатором? Я в основном хочу, чтобы после нажатия кнопки «Создать идентификатор» поле ввода ввода рядом с ним должно обновляться с генерируемым случайным числом.

ответ

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> 

// Управляемый компонент

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; 
    } 
} 
Смежные вопросы