사용자 정의 인증서를 만드는 방법
(전)
다음은 이메일 검증기의 예입니다.
EmailValidator.java:
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
public class EmailValidator implements Validator {
private String errorMessage = null;
public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; }
public void validate(FacesContext context, UIComponent component, Object value) {
if (null == value) {
return;
}
String email = (String) value;
if (-1 == email.indexOf('@', 1) || -1 == email.indexOf('.')) {
if (errorMessage != null) {
throw new ValidatorException(new FacesMessage(Tags.eval(errorMessage)));
} else {
// use default validator message
throw new ValidatorException(null);
}
}
}
}
Tags.java:
import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.ValueChangeEvent;
import javax.faces.webapp.ConverterTag;
import javax.faces.webapp.UIComponentTag;
public class Tags {
// Converter Tags and Validator Tags helper methods
public static String eval(String expression) {
if (expression != null && UIComponentTag.isValueReference(expression)) {
FacesContext context = FacesContext.getCurrentInstance();
Application app = context.getApplication();
ValueBinding vb = app.createValueBinding(expression);
return "" + vb.getValue(context);
} else {
return expression;
}
}
}
EmailValidatorTag.java:
import javax.faces.component.UIComponent;
import javax.faces.validator.Validator;
import javax.faces.webapp.ValidatorTag;
import javax.servlet.jsp.JspException;
public class EmailValidatorTag extends ValidatorTag {
private String errorMessage = null;
public EmailValidatorTag() {
setValidatorId("Email");
}
public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; }
public Validator createValidator() throws JspException {
EmailValidator validator = (EmailValidator) super.createValidator();
validator.setErrorMessage(errorMessage);
return validator;
}
public void release() {
errorMessage = null;
}
}
faces-config.xml:
<validator>
<validator-id>Email</validator-id>
<validator-class>EmailValidator</validator-class>
</validator>
mytags.tld:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.2</jspversion>
<shortname>mytags</shortname>
<uri>mytags</uri>
<tag>
<name>validateEmail</name>
<tagclass>EmailValidatorTag</tagclass>
<attribute>
<name>errorMessage</name>
<description>message if a validation error occurs</description>
</attribute>
</tag>
</taglib>
mypage.jsp:
<h:inputText id="email" required="true">
<mytags:validateEmail errorMessage="#{bean.message}"/>
</h:inputText>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.