Taglib原理和实现 第五章:再论支持El表达式和jstl标签

easyhoney

easyhoney

2016-02-19 14:29

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享Taglib原理和实现 第五章:再论支持El表达式和jstl标签吧。

  

  第五章:再论支持El表达式和jstl标签

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  1。问题:你想和jstl共同工作。比如,在用自己的标签处理一些逻辑之后,让jstl处理余下的工作。

  2。看这个jsp例子:
  ....
  %
  String name="diego";
  request.setAttribute("name",name);
  %

  c:out value="${name}"/
  ......

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

    许多jstl标签支持El表达式,所以,只要你在自己的标签内部把值塞进request,其他jstl标签就能使用它们

  3。下面这个例子,从request里面取得对象,找到它属性的值,塞到request里去。

  package diegoyun;

  import Javax.servlet.jsp.JspException;
  import javax.servlet.jsp.tagext.TagSupport;
  import org.apache.commons.beanutils.PropertyUtils;
  import org.apache.taglibs.standard.lang.support.EXPressionEvaluatorManager;

  public class SetVarTag extends TagSupport
  {
   private Object value = null; 
   private String property = null; 
   private String var = null;
   public void setVar(String var)
   {
    this.var = var;
   }
   public void setProperty(String property)
   {
    this.property = property;
   }
   public void setValue(Object value)throws JspException{
       this.value = ExpressionEvaluatorManager.evaluate(
              "value", value.toString(), Object.class, this, pageContext);  
   }
   public int doEndTag() throws JspException{
    Object propertyValue = null;
    try{
     propertyValue = PropertyUtils.getProperty(value, property);
    }
    catch (Exception e) {
     throw new JspException(e);
    }  
    pageContext.setAttribute(var,propertyValue);
    return EVAL_PAGE;
   }
  }

  编写tld
  !--SetVarTag--
   tag
    nameset/name
    tag-classdiegoyun.SetVarTag/tag-class
    body-contentempty/body-content
    attribute
     namevalue/name
     requiredtrue/required
     rtexprvaluetrue/rtexprvalue
    /attribute
    attribute
     nameproperty/name
     requiredfalse/required
     rtexprvaluefalse/rtexprvalue
    /attribute
    attribute
     namevar/name
     requiredfalse/required
     rtexprvaluefalse/rtexprvalue
    /attribute
   /tag

  编写jsp
  

展开更多 50%)
分享

猜你喜欢

Taglib原理和实现 第五章:再论支持El表达式和jstl标签

编程语言 网络编程
Taglib原理和实现 第五章:再论支持El表达式和jstl标签

Taglib原理和实现

Java JAVA基础
Taglib原理和实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

jsp 不支持EL表达式解决办法

Web开发
jsp 不支持EL表达式解决办法

JSP EL表达式详细介绍

Web开发
JSP EL表达式详细介绍

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

第五章 类 (2)

编程语言 网络编程
第五章 类 (2)

第五章 温馨絮语

分娩
第五章 温馨絮语

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Win10怎么强制升级?

Win10怎么强制升级?

Ant 简介

Ant 简介
下拉加载更多内容 ↓