/***************************************************************************** * * * This file is part of the frameworkset distribution. * * Documentation and updates may be get from biaoping.yin the author of * * this framework * * * * Sun Public License Notice: * * * * The contents of this file are subject to the Sun Public License Version * * 1.0 (the "License"); you may not use this file except in compliance with * * the License. A copy of the License is available at http://www.sun.com * * * * The Original Code is tag. The Initial Developer of the Original * * Code is biaoping.yin. Portions created by biaoping.yin are Copyright * * (C) 2004. All Rights Reserved. * * * * GNU Public License Notice: * * * * Alternatively, the contents of this file may be used under the terms of * * the GNU Lesser General Public License (the "LGPL"), in which case the * * provisions of LGPL are applicable instead of those above. If you wish to * * allow use of your version of this file only under the terms of the LGPL * * and not to allow others to use your version of this file under the SPL, * * indicate your decision by deleting the provisions above and replace * * them with the notice and other provisions required by the LGPL. If you * * do not delete the provisions above, a recipient may use your version of * * this file under either the SPL or the LGPL. * * * * biaoping.yin (yin-bp@163.com) * * * *****************************************************************************/ package com.frameworkset.common.tag.tree.impl; import javax.servlet.jsp.JspException; import com.frameworkset.common.tag.BaseTag; /** * 记录树的一些参数 * @author biaoping.yin * created on 2005-7-8 * version 1.0 */ public class ParamTag extends BaseTag { String name; String scope; String value; boolean encode = true; private String defaultValue = null; public int doEndTag() throws JspException { return super.doEndTag(); } @Override public void doFinally() { this.name = null; this.scope = null; this.value = null; this.encode = true; super.doFinally(); } /** * Description: * @return defaultValue */ public String getDefaultValue() { return defaultValue; } /** * Description:defaultValue * @return void */ public void setDefaultValue(String string) { defaultValue = string; } public void setEncode(boolean encode) { this.encode = encode; } public boolean getEncode() { return this.encode; } /** * @return Returns the name. */ public String getName() { return name; } /** * @param name The name to set. */ public void setName(String name) { this.name = name; } /** * @return Returns the scope. */ public String getScope() { return scope; } /** * @param scope The scope to set. */ public void setScope(String scope) { this.scope = scope; } private void addParam(TreeTag parent,String name,String value) { parent.addParam(name,value); } public int doStartTag() { TreeTag parent = (TreeTag) this.getParent(); if(scope == null || scope.equals("request")) { if(value == null) { String[] values = this.getHttpServletRequest().getParameterValues(name); if(values != null) { for(int i = 0; i < values.length; i ++) { if(values[i] != null) { if(this.encode) { this.addParam(parent,name,java.net.URLEncoder.encode(values[i])); } else this.addParam(parent,name,values[i]); } } } else if(this.defaultValue != null) { if(this.encode) { this.addParam(parent,name,java.net.URLEncoder.encode(defaultValue)); } else this.addParam(parent,name,defaultValue); } } else { if(encode) addParam(parent,name,java.net.URLEncoder.encode(value)); else addParam(parent,name,value); } } else if(this.getSession() != null && scope.equals("session")) { String value = (String)getSession().getAttribute(name); if(value != null ) { if(encode) addParam(parent, name, java.net.URLEncoder.encode(value)); else addParam(parent, name, value); } else if(this.defaultValue != null) { if(this.encode) this.addParam(parent,name,java.net.URLEncoder.encode(defaultValue)); else this.addParam(parent,name,defaultValue); } } else if(scope.equals("pageContext")) { String value = (String)pageContext.getAttribute(name); if(value != null ) { if(encode) addParam(parent, name, java.net.URLEncoder.encode(value)); else addParam(parent, name, value); } else if(this.defaultValue != null) { if(this.encode) this.addParam(parent,name,java.net.URLEncoder.encode(defaultValue)); else this.addParam(parent,name,defaultValue); } } return SKIP_BODY; } /** * @return Returns the value. */ public String getValue() { return value; } /** * @param value The value to set. */ public void setValue(String value) { this.value = value; } }