// 得到所有的文äšgåQŒä»¥åŠå…¶å®ƒè¯·æ±‚傿•ŽÍ¼š
      List fileItems = fu.parseRequest(request);
      Iterator i = fileItems.iterator();
      // 便¬¡å¤„ç†æ¯ä¸€ä¸ªæ–‡ä»Óž¼Œä»¥åŠè¯äh±‚傿•°åQ?br />      while(i.hasNext()) {
          FileItem fi = (FileItem)i.next();
          // 如果是文仉™¡¹åQŒåˆ™ä¿å˜æ–‡äšgåˆîC¸Šä¼ ç›®å½?br />          if (!fi.isFormField()) {
              // 获得文äšgå,˜q™ä¸ªæ–‡äšgå包括èµ\径:
              String fileName = fi.getName();
              long filesize = fi.getSize();
              System.out.println("ä¸Šä¼ çš„æ–‡ä»¶åä¸?!!"+fileName + " size : " + filesize);
              // 写入文äšg
              fileName = fileName.substring(fileName.lastIndexOf("\\"));
              String conPath = getServletContext().getRealPath("");
              fi.write(new File(conPath + "http://uploadFolder//" +fileName));
          }
          else { //å¦‚æžœæ˜¯è¯·æ±‚å‚æ•ŽÍ¼Œåˆ™ä¿å˜åˆ°HashMapä¸?br />              String name = fi.getFieldName();
              String value = fi.getString();
              parameters.put(name, value);
              System.out.println(parameters);
          }
      }
  }
  catch(Exception ex) {
     System.out.println("ä¸Šä¼ æ–‡äšg时出é”?!!");
     ex.printStackTrace();
  }
 }
å¤–åŠ å¯¼å…¥ä¸¤ä¸ªåŒ…ï¼šorg.apache.commons.fileuploadã€org.apache.commons.io
åQœdiego:withObject value="${people}"åQ?br /> åQœdiego:withCollection property="men"åQ?br />  åQœdiego:elementout property="name"/åQ?  åQ?diego:withCollectionåQ?br />åQ?diego:withObjectåQ?/td> |
package diegoyun.vo; import java.util.Collection; public class People {  private Collection men = null;  public Collection getMen()  {   return men;  }  public void setMen(Collection men)  {   this.men = men;  } } |
package diegoyun; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager; public class WithObjectTag extends BodyTagSupport {  private Object value = null;  public Object getValue()  {   return value;  }  public void setValue(Object value)throws JspException  {   this.value = ExpressionEvaluatorManager.evaluate("value", value.toString(), Object.class, this, pageContext);  }  public int doStartTag()  {   return EVAL_BODY_INCLUDE;  }  public int doEndTag()throws JspException  {   return EVAL_PAGE;  } } |
package diegoyun; import java.util.Collection; import java.util.Iterator; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import org.apache.commons.beanutils.PropertyUtils; public class WithCollectionTag extends BodyTagSupport {  private Object element = null;  private Collection list = null;  private Iterator iterator = null;  public Object getElement() {   return element;  }  public void setProperty(String property) throws JspException {   //å–得父Tag对象,òq¶ä¸”得到Collection   WithObjectTag parent = (WithObjectTag) getParent();   if (parent == null)    throw new JspException("parent tag is null");    try {     Object propertyValue = PropertyUtils.getProperty(parent.getValue(),property);     this.list = (Collection) propertyValue;     if (list == null)      throw new JspException("Collection is null");    } catch (Exception e) {     throw new JspException(e);   }  }  public int doStartTag() throws JspException {   //讄¡½®½W¬ä¸€ä¸ªå…ƒç´?ç„¶åŽæ‰§è¡ŒåTag   iterator = list.iterator();   if (iterator.hasNext())    element = iterator.next();    return EVAL_BODY_INCLUDE;  }  public int doAfterBody() {   if (iterator.hasNext()) {    //如果˜q˜å˜åœ¨åå…ƒç´ ,讄¡½®åå…ƒç´?òq¶ä¸”冿¬¡æ‰§è¡ŒåTag    //循环由æ¤è€Œæ¥    //å¦åˆ™ä¸å†æ‰§è¡ŒåTag    element = iterator.next();    return EVAL_BODY_AGAIN;   }   else    return EVAL_PAGE;  } } |
package diegoyun; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; import org.apache.commons.beanutils.PropertyUtils; public class ElementOutputTag extends TagSupport {  private Object propertyValue = null;  public void setProperty(String property)throws JspException  {   WithCollectionTag parent = (WithCollectionTag)getParent();   if(parent == null)    throw new JspException("parent tag is null");   try   {    //判æ–上层tag䏿˜¯å¦å˜åœ¨è¯¥å±žæ€§å¿U?如果å˜åœ¨,å–得属性å€?å¦åˆ™æŠ¥é”™    propertyValue = PropertyUtils.getProperty(parent.getElement(), property);   }   catch (Exception e)   {    throw new JspException(e);   }  }  public int doEndTag()throws JspException  {   try   {    //½Ž€å•的把值打å°åˆ°jsp™åµé¢    pageContext.getOut().print(propertyValue);   }   catch (IOException e)   {    throw new JspException(e);   }   return EVAL_PAGE;  } } |
åQ?--WithObjectTag--åQ?br />åQœtagåQ?br /> åQœnameåQžwithObjectåQ?nameåQ?br /> åQœtag-classåQždiegoyun.WithObjectTagåQ?tag-classåQ?br /> åQœbody-contentåQžJSPåQ?body-contentåQ?br /> åQœattributeåQ?br />  åQœnameåQžvalueåQ?nameåQ?br />  åQœrequiredåQžfalseåQ?requiredåQ?br />  åQœrtexprvalueåQžtrueåQ?rtexprvalueåQ?br /> åQ?attributeåQ?br />åQ?tagåQ?br />åQ?--WithCollectionTag--åQ?br />åQœtagåQ?br /> åQœnameåQžwithCollectionåQ?nameåQ?br /> åQœtag-classåQždiegoyun.WithCollectionTagåQ?tag-classåQ?br /> åQœbody-contentåQžJSPåQ?body-contentåQ?br /> åQœattributeåQ?br />  åQœnameåQžpropertyåQ?nameåQ?br />  åQœrequiredåQžfalseåQ?requiredåQ?br />  åQœrtexprvalueåQžtrueåQ?rtexprvalueåQ?br /> åQ?attributeåQ?br />åQ?tagåQ?br />åQ?--ElementOutputTag--åQ?br />åQœtagåQ?br /> åQœnameåQželementoutåQ?nameåQ?br /> åQœtag-classåQždiegoyun.ElementOutputTagåQ?tag-classåQ?br /> åQœbody-contentåQžemptyåQ?body-contentåQ?br /> åQœattributeåQ?br />  åQœnameåQžpropertyåQ?nameåQ?br />  åQœrequiredåQžfalseåQ?requiredåQ?br />  åQœrtexprvalueåQžtrueåQ?rtexprvalueåQ?br /> åQ?attributeåQ?br />åQ?tagåQ?/td> |
åQ?@ page language="java" %åQ?br />åQ?@ page import="diegoyun.vo.*"%åQ?br />åQ?@ page import="java.util.*"%åQ?br />åQ?@ taglib uri="/WEB-INF/tlds/diego.tld" prefix="diego"%åQ?br /> åQœhtmlåQ?br />åQœbody bgcolor="#FFFFFF"åQ?br />åQ?  Collection c = new ArrayList();  Man man1 = new Man();  man1.setName("diego");  c.add(man1);  Man man2 = new Man();  man2.setName("Zidane");  c.add(man2);  Man man3 = new Man();  man3.setName("Rui");  c.add(man3);  People p =new People();  p.setMen(c);  request.setAttribute("people",p); %åQ?br />Test loop tag: åQœbråQ?br />åQœdiego:withObject value="${people}"åQ?br />åQœdiego:withCollection property="men"åQ?br />åQœdiego:elementout property="name"/åQ?br />åQœbråQ?br />åQ?diego:withCollectionåQ?br />åQ?diego:withObjectåQ?br />åQ?bodyåQ?br />åQ?htmlåQ?/td> |
Test loop tag: diego Zidane Rui |
˜q˜æœ‰ž®±æ˜¯ä¸‹é¢å‡ 个属性,ä¸çŸ¥é“该怎么用?
SKIP_BODYÂ Â Â Â SKIP_PAGEÂ Â Â Â Â Â Â EVAL_PAGEÂ Â Â EVAL_BODY_BUFFEREDÂ Â Â Â Â Â
EVAL_BODY_INCLUDEÂ Â Â Â Â Â Â Â Â Â EVAL_BODY_AGAIN