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

📄 jsvaluechangelistenerrenderer.java

📁 一个使用struts+hibernate+spring开发的完的网站源代码。
💻 JAVA
字号:
/* * Copyright (c) 2005 Your Corporation. All Rights Reserved. */package org.apache.myfaces.custom.jslistener;import org.apache.myfaces.renderkit.RendererUtils;import org.apache.myfaces.renderkit.html.HTML;import org.apache.myfaces.renderkit.html.HtmlRenderer;import org.apache.myfaces.custom.jsvalueset.HtmlJsValueSet;import org.apache.myfaces.component.html.util.AddResource;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import javax.faces.application.Application;import javax.faces.component.UIComponent;import javax.faces.component.UINamingContainer;import javax.faces.context.FacesContext;import javax.faces.context.ResponseWriter;import java.io.IOException;import java.util.Collection;import java.util.Iterator;import java.util.Map;/** * $Log: JsValueChangeListenerRenderer.java,v $ * Revision 1.1  2005/01/04 16:09:57  mmarinschek * ChangeListener now uses renderer * * Revision 1.1  2004/12/19 00:50:55  mmarinschek * JsValueSetTag * * * @author Martin Marinschek (latest modification by $Author: mmarinschek $) * @version $Revision: 1.1 $ $Date: 2005/01/04 16:09:57 $ */public class JsValueChangeListenerRenderer        extends HtmlRenderer{    private static Log log = LogFactory.getLog(JsValueChangeListenerRenderer.class);    public void encodeEnd(FacesContext facesContext, UIComponent component)            throws IOException    {        RendererUtils.checkParamValidity(facesContext, component, JsValueChangeListener.class);        UIComponent parent = component.getParent();        JsValueChangeListener jsValueChangeListener = (JsValueChangeListener) component;        String aFor = jsValueChangeListener.getFor();        String expressionValue = jsValueChangeListener.getExpressionValue();        String property = jsValueChangeListener.getProperty();        AddResource.addJavaScriptToHeader(                JsValueChangeListenerTag.class, "JSListener.js", false, getFacesContext());        if(aFor!=null)        {            UIComponent forComponent = component.findComponent(aFor);            String forComponentId = null;            if (forComponent == null)            {                if (log.isInfoEnabled())                {                    log.info("Unable to find component '" + aFor + "' (calling findComponent on component '" + component.getClientId(getFacesContext()) + "') - will try to render component id based on the parent-id (on same level)");                }                if (aFor.length() > 0 && aFor.charAt(0) == UINamingContainer.SEPARATOR_CHAR)                {                    //absolute id path                    forComponentId = aFor.substring(1);                }                else                {                    //relative id path, we assume a component on the same level as the label component                    String labelClientId = component.getClientId(getFacesContext());                    int colon = labelClientId.lastIndexOf(UINamingContainer.SEPARATOR_CHAR);                    if (colon == -1)                    {                        forComponentId = aFor;                    }                    else                    {                        forComponentId = labelClientId.substring(0, colon + 1) + aFor;                    }                }            }            else            {                forComponentId = forComponent.getClientId(getFacesContext());            }            expressionValue = expressionValue.replaceAll("\\'","\\\\'");            expressionValue = expressionValue.replaceAll("\"","\\\"");            String methodCall = "orgApacheMyfacesJsListenerSetExpressionProperty('"+                    parent.getClientId(getFacesContext())+"','"+                    forComponentId+"',"+                    (property==null?"null":"'"+property+"'")+                    ",'"+expressionValue+"');";            callMethod(parent, "onchange",methodCall);        }    }    private void callMethod(UIComponent uiComponent, String propName, String value)    {        Object oldValue = uiComponent.getAttributes().get(propName);        if(oldValue != null)        {            String oldValueStr = oldValue.toString().trim();            //check if method call has already been added...            if(oldValueStr.indexOf(value)!=-1)                return;            if(oldValueStr.length()>0 && !oldValueStr.endsWith(";"))                oldValueStr +=";";            value = oldValueStr + value;        }        uiComponent.getAttributes().put(propName, value);    }    protected Application getApplication()    {        return getFacesContext().getApplication();    }    protected FacesContext getFacesContext()    {        return FacesContext.getCurrentInstance();    }}

⌨️ 快捷键说明

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