validatortag.java

来自「一个使用struts+hibernate+spring开发的完的网站源代码。」· Java 代码 · 共 93 行

JAVA
93
字号
/* * Copyright 2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package javax.faces.webapp;import javax.faces.application.Application;import javax.faces.component.EditableValueHolder;import javax.faces.component.UIComponent;import javax.faces.context.FacesContext;import javax.faces.el.ValueBinding;import javax.faces.validator.Validator;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.Tag;import javax.servlet.jsp.tagext.TagSupport;/** * @author Manfred Geiler (latest modification by $Author: mwessendorf $) * @version $Revision: 1.4 $ $Date: 2004/07/01 22:00:54 $ */public class ValidatorTag        extends TagSupport{    private String _validatorId;    public void setValidatorId(String validatorId)    {        _validatorId = validatorId;    }    public int doStartTag()            throws javax.servlet.jsp.JspException    {        UIComponentTag componentTag = UIComponentTag.getParentUIComponentTag(pageContext);        if (componentTag == null)        {            throw new JspException("no parent UIComponentTag found");        }        if (!componentTag.getCreated())        {            return Tag.SKIP_BODY;        }        Validator validator = createValidator();        UIComponent component = componentTag.getComponentInstance();        if (component == null)        {            throw new JspException("parent UIComponentTag has no UIComponent");        }        if (!(component instanceof EditableValueHolder))        {            throw new JspException("UIComponent is no ValueHolder");        }        ((EditableValueHolder)component).addValidator(validator);        return Tag.SKIP_BODY;    }    public void release()    {        super.release();        _validatorId = null;    }    protected Validator createValidator()            throws JspException    {        FacesContext facesContext = FacesContext.getCurrentInstance();        Application application = facesContext.getApplication();        if (UIComponentTag.isValueReference(_validatorId))        {            ValueBinding vb = facesContext.getApplication().createValueBinding(_validatorId);            return application.createValidator((String)vb.getValue(facesContext));        }        else        {            return application.createValidator(_validatorId);        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?