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

📄 uploadrenderer.java

📁 struts框架的jsf组件的核心实用例子集合
💻 JAVA
字号:
package com.corejsf;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import javax.faces.FacesException;import javax.faces.component.EditableValueHolder;import javax.faces.component.UIComponent;import javax.faces.context.ExternalContext;import javax.faces.context.FacesContext;import javax.faces.context.ResponseWriter;import javax.faces.el.ValueBinding;import javax.faces.render.Renderer;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.apache.commons.fileupload.FileItem;public class UploadRenderer extends Renderer {   public void encodeBegin(FacesContext context, UIComponent component)        throws IOException {      if (!component.isRendered()) return;      ResponseWriter writer = context.getResponseWriter();      String clientId = component.getClientId(context);            writer.startElement("input", component);      writer.writeAttribute("type", "file", "type");      writer.writeAttribute("name", clientId, "clientId");      writer.endElement("input");      writer.flush();   }   public void decode(FacesContext context, UIComponent component) {      ExternalContext external = context.getExternalContext();       HttpServletRequest request = (HttpServletRequest) external.getRequest();      String clientId = component.getClientId(context);      FileItem item = (FileItem) request.getAttribute(clientId);      Object newValue;      ValueBinding binding = component.getValueBinding("value");      if (binding != null) {         if (binding.getType(context) == byte[].class) {            newValue = item.get();         }         if (binding.getType(context) == InputStream.class) {            try {               newValue = item.getInputStream();            } catch (IOException ex) {               throw new FacesException(ex);            }         }         else {            String encoding = request.getCharacterEncoding();            if (encoding != null)               try {                  newValue = item.getString(encoding);               } catch (UnsupportedEncodingException ex) {                  newValue = item.getString();                }            else                newValue = item.getString();          }         ((EditableValueHolder) component).setSubmittedValue(newValue);            }      Object target;      binding = component.getValueBinding("target");      if (binding != null) target = binding.getValue(context);      else target = component.getAttributes().get("target");               if (target != null) {         File file;         if (target instanceof File)            file = (File) target;         else {            ServletContext servletContext                = (ServletContext) external.getContext();            file = new File(servletContext.getRealPath("/"),                target.toString());         }         try { // ugh--write is declared with "throws Exception"            item.write(file);         } catch (Exception ex) {             throw new FacesException(ex);         }      }   }   }

⌨️ 快捷键说明

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