InputMask component forces input to be formatted in a certain pattern.
<div class="card">
<div class="ui-fluid p-formgrid p-grid">
<div class="p-field p-col-12 p-md-4">
<p:outputLabel for="date" value="Date"/>
<p:inputMask id="date" value="#{maskView.date}" mask="99/99/9999"/>
</div>
<div class="p-field p-col-12 p-md-4">
<p:outputLabel for="phone" value="Phone"/>
<p:inputMask id="phone" value="#{maskView.phone}" mask="(999) 999-9999" validateMask="true"/>
</div>
<div class="p-field p-col-12 p-md-4">
<p:outputLabel for="phoneWithExt" value="Phone with Ext:"/>
<p:inputMask id="phoneWithExt" value="#{maskView.phoneExt}" mask="(999) 999-9999[ x99999]"/>
</div>
<div class="p-field p-col-12 p-md-4">
<p:outputLabel for="taxId" value="Tax Id"/>
<p:inputMask id="taxId" value="#{maskView.taxId}" mask="99-9999999" validateMask="true"/>
</div>
<div class="p-field p-col-12 p-md-4">
<p:outputLabel for="ssn" value="SSN"/>
<p:inputMask id="ssn" value="#{maskView.ssn}" mask="999-99-9999" validateMask="true"/>
</div>
<div class="p-field p-col-12 p-md-4">
<p:outputLabel for="key" value="Product Key"/>
<p:inputMask id="key" value="#{maskView.productKey}" mask="a*-999-a999" validateMask="true"/>
</div>
</div>
</div>
@Named
@RequestScoped
public class MaskView {
private String date;
private String phone;
private String phoneExt;
private String taxId;
private String ssn;
private String productKey;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPhoneExt() {
return phoneExt;
}
public void setPhoneExt(String phoneExt) {
this.phoneExt = phoneExt;
}
public String getTaxId() {
return taxId;
}
public void setTaxId(String taxId) {
this.taxId = taxId;
}
public String getSsn() {
return ssn;
}
public void setSsn(String ssn) {
this.ssn = ssn;
}
public String getProductKey() {
return productKey;
}
public void setProductKey(String productKey) {
this.productKey = productKey;
}
}