⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmltextrendererbase.java

📁 一个使用struts+hibernate+spring开发的完的网站源代码。
💻 JAVA
字号:
/* * 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 org.apache.myfaces.renderkit.html;import org.apache.myfaces.renderkit.JSFAttr;import org.apache.myfaces.renderkit.RendererUtils;import javax.faces.component.UIComponent;import javax.faces.component.UIInput;import javax.faces.component.UIOutput;import javax.faces.component.UIViewRoot;import javax.faces.component.html.HtmlInputText;import javax.faces.component.html.HtmlOutputText;import javax.faces.context.FacesContext;import javax.faces.context.ResponseWriter;import javax.faces.convert.ConverterException;import java.io.IOException;/** * @author Thomas Spiegl (latest modification by $Author: mmarinschek $) * @author Manfred Geiler * @version $Revision: 1.9 $ $Date: 2004/12/23 13:03:09 $ * $Log: HtmlTextRendererBase.java,v $ * Revision 1.9  2004/12/23 13:03:09  mmarinschek * id's not rendered (or not conditionally rendered); changes in jslistener to support both ie and firefox now * * Revision 1.8  2004/10/13 11:51:01  matze * renamed packages to org.apache * * Revision 1.7  2004/09/02 17:23:25  tinytoony * fix for the span-element for other than the output-text * * Revision 1.6  2004/09/02 16:44:38  tinytoony * fix for the fix ;) for span-element bug * * Revision 1.5  2004/08/30 17:50:34  tinytoony * fix for span-element bug * * Revision 1.4  2004/08/30 17:29:26  tinytoony * fix for span-element bug * * Revision 1.3  2004/07/01 22:00:56  mwessendorf * ASF switch * * Revision 1.2  2004/05/25 07:33:06  manolito * no longer depends on specific component classes * * Revision 1.1  2004/05/18 14:31:39  manolito * user role support completely moved to components source tree * */public class HtmlTextRendererBase        extends HtmlRenderer{    //private static final Log log = LogFactory.getLog(HtmlTextRenderer.class);    public void encodeEnd(FacesContext facesContext, UIComponent component)        throws IOException    {        RendererUtils.checkParamValidity(facesContext,component,null);        if (component instanceof UIInput)        {            renderInput(facesContext, component);        }        else if (component instanceof UIOutput)        {            renderOutput(facesContext, component);        }        else        {            throw new IllegalArgumentException("Unsupported component class " + component.getClass().getName());        }    }    protected static void renderOutput(FacesContext facesContext, UIComponent component)        throws IOException    {        String text = RendererUtils.getStringValue(facesContext, component);        boolean escape;        if (component instanceof HtmlOutputText)        {            escape = ((HtmlOutputText)component).isEscape();        }        else        {            escape = RendererUtils.getBooleanAttribute(component, JSFAttr.ESCAPE_ATTR,                                                       true); //default is to escape        }        renderOutputText(facesContext, component, text, escape);    }    public static void renderOutputText(FacesContext facesContext,                                        UIComponent component,                                        String text,                                        boolean escape)        throws IOException    {        if (text != null)        {            ResponseWriter writer = facesContext.getResponseWriter();            boolean span = false;            if(component.getId()!=null && !component.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))            {                span = true;                writer.startElement(HTML.SPAN_ELEM, component);                HtmlRendererUtils.writeIdIfNecessary(writer, component, facesContext);                HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.COMMON_PASSTROUGH_ATTRIBUTES);            }            else            {                span = HtmlRendererUtils.renderHTMLAttributesWithOptionalStartElement(writer,component,                        HTML.SPAN_ELEM,HTML.COMMON_PASSTROUGH_ATTRIBUTES);            }            if (escape)            {                writer.writeText(text, JSFAttr.VALUE_ATTR);            }            else            {                writer.write(text);            }            if(span)            {                writer.endElement(HTML.SPAN_ELEM);            }        }    }    protected void renderInput(FacesContext facesContext, UIComponent component)        throws IOException    {        ResponseWriter writer = facesContext.getResponseWriter();        String clientId = component.getClientId(facesContext);        String value = RendererUtils.getStringValue(facesContext, component);        writer.startElement(HTML.INPUT_ELEM, component);        writer.writeAttribute(HTML.ID_ATTR, clientId, null);        writer.writeAttribute(HTML.NAME_ATTR, clientId, null);        writer.writeAttribute(HTML.TYPE_ATTR, HTML.INPUT_TYPE_TEXT, null);        if (value != null)        {            writer.writeAttribute(HTML.VALUE_ATTR, value, JSFAttr.VALUE_ATTR);        }        HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);        if (isDisabled(facesContext, component))        {            writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);        }        writer.endElement(HTML.INPUT_ELEM);    }    protected boolean isDisabled(FacesContext facesContext, UIComponent component)    {        //TODO: overwrite in extended HtmlTextRenderer and check for enabledOnUserRole        if (component instanceof HtmlInputText)        {            return ((HtmlInputText)component).isDisabled();        }        else        {            return RendererUtils.getBooleanAttribute(component, HTML.DISABLED_ATTR, false);        }    }    public void decode(FacesContext facesContext, UIComponent component)    {        RendererUtils.checkParamValidity(facesContext,component,null);        if (component instanceof UIInput)        {            HtmlRendererUtils.decodeUIInput(facesContext, component);        }        else if (component instanceof UIOutput)        {            //nothing to decode        }        else        {            throw new IllegalArgumentException("Unsupported component class " + component.getClass().getName());        }    }    public Object getConvertedValue(FacesContext facesContext, UIComponent component, Object submittedValue) throws ConverterException    {        RendererUtils.checkParamValidity(facesContext, component, UIOutput.class);        return RendererUtils.getConvertedUIOutputValue(facesContext,                                                       (UIOutput)component,                                                       submittedValue);    }}

⌨️ 快捷键说明

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