| /* * J2J.java * * Created on 2006年10月2日, 下午7:16 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package net.vlinux.tag.j2j; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.lang.reflect.*; import java.util.*; /** * * @author vlinux */ public class NewObject extends TagSupport { private String dist; private String distName; private String scope; private String source; private List<Method> getGetMethods( Object aObject ) { Method[] array = aObject.getClass().getMethods(); List<Method> list = new ArrayList<Method>(); for( int i=0;i<array.length;i ){ String methodName = array[i].getName(); if( methodName.matches("get.*") ) list.add(array[i]); } return list; } private String getFieldName( Method aMethod){ String methodName = aMethod.getName(); String subName = methodName.substring(3,methodName.length()); return subName.toLowerCase(); } private Object getSourceObject(String scope, String source){ if( scope.equals("request") ){ return pageContext.getRequest().getAttribute(source); }else if( scope.equals("session") ){ return pageContext.getSession().getAttribute(source); }else if( scope.equals("page") ){ return pageContext.getAttribute(source); }else{ System.out.println("xxx"); return null; } } public int doStartTag(){ JspWriter out = pageContext.getOut(); Object sourceObject = getSourceObject(getScope(),getSource()); List list = getGetMethods( sourceObject ); try{ out.println( "<script>" ); out.println( "tvar " getDistName() " = new " getDist() "();"); for( int i=0;i<list.size();i ){ try{ String fieldName = getFieldName((Method)list.get(i)); String value = ((Method)list.get(i)).invoke( getSourceObject(getScope(),getSource())).toString(); out.println( "t" getDistName() "." fieldName " = "" value """); }catch(Exception e){ // } } out.println( "</script>" ); }catch( java.io.IOException ioe){ // } return (EVAL_BODY_INCLUDE); } public int doEndTag(){ return (EVAL_PAGE); } |
|||
| 共3页: 上一页 1 [2] [3] 下一页 | |||
![]() |