- Jakarta EE Cookbook
- Elder Moraes
- 197字
- 2021-06-24 16:12:43
How to do it...
You need to perform the following steps to complete this recipe:
- Let's create a User object that will be attached to our JSF page:
@Named
@RequestScoped
public class User {
@NotBlank (message = "Name should not be blank")
@Size (min = 4, max = 10,message = "Name should be between
4 and 10 characters")
private String name;
@Email (message = "Invalid e-mail format")
@NotBlank (message = "E-mail should not be blank")
private String email;
@PastOrPresent (message = "Created date should be
past or present")
@NotNull (message = "Create date should not be null")
private LocalDate created;
@Future (message = "Expires should be a future date")
@NotNull (message = "Expires should not be null")
private LocalDate expires;
//DO NOT FORGET TO IMPLEMENT THE GETTERS AND SETTERS
...
- Now, we need to define the method that will be fired once all the data is valid:
public void valid(){
FacesContext
.getCurrentInstance()
.addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO,
"Your data is valid", ""));
}
- Now, our JSF page references each User class field that's been declared, as follows:
<h:body>
<h:form>
<h:outputLabel for="name" value="Name" />
<h:inputText id="name" value="#{user.name}" />
<br/>
<h:outputLabel for="email" value="E-mail" />
<h:inputText id="email" value="#{user.email}" />
<br/>
<h:outputLabel for="created" value="Created" />
<h:inputText id="created" value="#{user.created}">
<f:convertDateTime type="localDate" pattern="dd/MM/uuuu" />
</h:inputText>
<br/>
<h:outputLabel for="expire" value="Expire" />
<h:inputText id="expire" value="#{user.expires}">
<f:convertDateTime type="localDate" pattern="dd/MM/uuuu" />
</h:inputText>
<br/>
<h:commandButton value="submit" type="submit" action="#{user.valid()}" />
</h:form>
</h:body>
If you run this code, all the fields will be validated once you click the Submit button. Try it for yourself!
推薦閱讀
- Mobile Web Performance Optimization
- Vue.js前端開發(fā)基礎(chǔ)與項目實戰(zhàn)
- Learning Informatica PowerCenter 10.x(Second Edition)
- Visual C++串口通信技術(shù)詳解(第2版)
- Drupal 8 Module Development
- UML 基礎(chǔ)與 Rose 建模案例(第3版)
- Julia 1.0 Programming Complete Reference Guide
- Beginning C++ Game Programming
- PyQt編程快速上手
- Learning Unreal Engine Game Development
- Robot Framework Test Automation
- RESTful Web API Design with Node.js
- jBPM6 Developer Guide
- Flink原理深入與編程實戰(zhàn):Scala+Java(微課視頻版)
- Visual FoxPro程序設(shè)計