【标签工具类添加后,在jsp页面添加标签如下错误 _时间转换(C标签) 】 | IT修真院·坑乎
问题已收录 标签工具类添加后,在jsp页面添加标签如下错误
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(1)
时间转换(C标签)
详细描述
错误截图
源码
编辑于2024-05-21
  • [北京|结业弟子]JAVA-廖友
    0

    自定义标签使用EL表达式出现的问题,因为你的代码目前还没有支持EL表达式,你可以看下我的代码,主要看setValue方法


    import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;


    import javax.servlet.jsp.JspException;

    import javax.servlet.jsp.tagext.TagSupport;

    import java.io.IOException;

    import java.text.SimpleDateFormat;

    import java.util.Date;


    /*

    此标签有两个作用,一是将传入的long类型时间转换为字符串类型时间;

    二是当不传入时间时,自动获取当前系统时间。

    */


    public class DateTag extends TagSupport {

    private Long value;

    /*

    要在标签中使用EL表达式,有如下步骤:

    1、将属性的对象类型type设为Object,rtexprvalue设为true (关于在tld设为Object类型问题,貌似关系不大,即使是long,int,甚至是默认的String都行)

    2、在set方法中执行如下evaluate方法并进行类型的转换

    */

    public void setValue(Object value) throws JspException {

    this.value = Long.parseLong((String) ExpressionEvaluatorManager.evaluate("value",value.toString(),Object.class,this,pageContext));

    }

    @Override

    public int doStartTag() throws JspException {

    // 实例化日期转换类并设置日期格式

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    if(value != null){

    Date date = new Date(value);

    String stringTime = simpleDateFormat.format(date);

    try {

    pageContext.getOut().println(stringTime);

    } catch (IOException e) {

    e.printStackTrace();

    }

    } else{

    Date date = new Date();

    String stringTime = simpleDateFormat.format(date);

    try {

    pageContext.getOut().println(stringTime);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    return super.doStartTag();

    }

    }


    编辑于2018-10-27