我有一个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但是如何使用该随机ID更新Facelets页面上的输入文本字段?我基本上想要一旦我点击“生成ID”按钮,它旁边的输入文本字段应该使用生成的随机数进行更新。
答案 0 :(得分: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;
}
}