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

📄 renderers.java

📁 struts框架的jsf组件的核心实用例子集合
💻 JAVA
字号:
package com.corejsf.util;import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.faces.application.Application;import javax.faces.component.UIComponent;import javax.faces.component.UIForm;import javax.faces.component.UISelectItem;import javax.faces.component.UISelectItems;import javax.faces.component.ValueHolder;import javax.faces.context.FacesContext;import javax.faces.convert.Converter;import javax.faces.convert.ConverterException;import javax.faces.el.ValueBinding;import javax.faces.model.SelectItem;public class Renderers {   public static Object getConvertedValue(FacesContext context, UIComponent component,         Object submittedValue) throws ConverterException {      if (submittedValue instanceof String) {         Converter converter = getConverter(context, component);         if (converter != null) {            return converter.getAsObject(context, component,                  (String) submittedValue);         }      }      return submittedValue;   }      public static Converter getConverter(FacesContext context, UIComponent component) {      if (!(component instanceof ValueHolder)) return null;      ValueHolder holder = (ValueHolder) component;      Converter converter = holder.getConverter();      if (converter != null) return converter;      ValueBinding valueBinding = component.getValueBinding("value");      if (valueBinding == null) return null;      Class targetType = valueBinding.getType(context);      if (targetType == null) return null;      // Version 1.0 of the reference implementation will not apply a converter      // if the target type is String or Object, but that is a bug.      Application app = context.getApplication();      return app.createConverter(targetType);   }     public static String getFormId(FacesContext context, UIComponent component) {      UIComponent parent = component;      while (!(parent instanceof UIForm)) parent = parent.getParent();            return parent.getClientId(context);    }   public static List getSelectItems(UIComponent component) {      ArrayList list = new ArrayList();      Iterator children = component.getChildren().iterator();      while (children.hasNext()) {         UIComponent child = (UIComponent) children.next();         if (child instanceof UISelectItem) {            Object value = ((UISelectItem) child).getValue();            if (value == null) {               UISelectItem item = (UISelectItem) child;               list.add(new SelectItem(item.getItemValue(),                     item.getItemLabel(),                      item.getItemDescription(),                      item.isItemDisabled()));            } else if (value instanceof SelectItem) {               list.add(value);            }         } else if (child instanceof UISelectItems) {            Object value = ((UISelectItems) child).getValue();            if (value instanceof SelectItem)               list.add(value);            else if (value instanceof SelectItem[])               list.addAll(Arrays.asList((SelectItem[]) value));            else if (value instanceof Collection)               list.addAll((Collection) value);            else if (value instanceof Map) {                                             Iterator entries = ((Map) value).entrySet().iterator();               while (entries.hasNext()) {                  Map.Entry entry = (Map.Entry) entries.next();                                    list.add(new SelectItem(entry.getKey(),                         "" + entry.getValue()));               }            }         }      }      return list;   }}

⌨️ 快捷键说明

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