护的实例变量 (varScope) 中。否则,setScope() 将抛出 JspException:
package jsputils.tags;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class VarTagSupport extends SimpleTagSupport {
protected String varName;
protected int varScope;
protected VarTagSupport() {
varScope = PageContext.PAGE_SCOPE;
}
public void setVar(String name) throws JspException {
varName = name;
}
public void setScope(String scope) throws JspException {
if (scope.equalsIgnoreCase(\"page\"))
varScope = PageContext.PAGE_SCOPE;
else if (scope.equalsIgnoreCase(\"request\"))
varScope = PageContext.REQUEST_SCOPE;
else if (scope.equalsIgnoreCase(\"session\"))
varScope = PageContext.SESSION_SCOPE;
else if (scope.equalsIgnoreCase(\"application\"))
varScope = PageContext.APPLICATION_SCOPE;
else
throw new JspException(\"Invalid scope:\" + scope);
}
} [Page]
将变量导出到 JSP 环境
如果 var 属性存在,并具有非 null 值 (varName != null),则 export() 方法使用 getJspContext() 取得 JSP 上下文。随后,如果 value 参数不为 null,则 export() 将使用 JSP 上下文的 setAttribute() 方法设置 JSP 变量。可以在 JSP 页面中使用 ${varName} 取得变量值。如果 value 参数为 null,则 export() 将调用 removeAttribute(),后者从给定的范围中删除任何具有给定名称的现有变量。
如果 var 属性不存在或具有 null 值,则 export() 方法将返回 false。否则,export() 将返回 true: