最近遇到一个问题,以前没有接触过,在网上找了下也很难找到答案,所有来求助下,有哪位高手给解答下:    要求在利用excel报表模板导出报表时,要把状态(Integer类型的)输出为别人可以直观理解的汉字,也就是说,例如:当${info.state} = 0 时,输出:“停用”;当${info.state} = 1 时,输出:“正常”;我也尝试用el的流程控制语句来实现,但是可能是方法不正确,输出失败。还请各位大虾不吝赐教!

解决方案 »

  1.   

    <c:if test="${info.state eq 0}">停用</c:if>
    <c:if test="${info.state eq 1}">正常</c:if>
      

  2.   

    <c:if test="${info.state eq 0}">停用 </c:if> 
    <c:if test="${info.state eq 1}">正常 </c:if> 
      

  3.   

    像这种数据字典一样的东西,我一般不建议直接在页面上判断。如果只有一处的话,也无所谓了,但是可能用到这种状态的页面会有很多,如果需要改动的话非常不方便。建议在重构一下 info 的类:public class Info {    private Integer status;
        ...    public final static Integer STATUS_STOP = 0;
        public final static Integer STATUS_NORMAL = 1;    private final static Map<Integer, String> STATUS_MAP = new HashMap<Integer, String>();    static {
            STATUS_MAP.put(STATUS_STOP, "停用");
            STATUS_MAP.put(STATUS_NORMAL, "正常");
        }    public String getStatusStr() {
            return STATUS_MAP.get(status);
        }    ...
    }在页面上直接使用 ${info.statusStr} 就可以了。
      

  4.   

    以上几位说的都是在jsp页面中的语法,在报表模板里不管用,之前我试过了。还有没有其他的方法,希望各位帮忙再想想!
      

  5.   

    应该不会吧,能使用 ${info.status} 的话,那么也肯定能使用 ${info.statusStr}
      

  6.   

    el就能用吗? 那用三元。哈哈 ${(info.status eq 1) ? '停用' : ''}
      

  7.   

    我之前是直接输出${info.state},输出结果为:0或1。请问bao110908,如果那你那样的话,在excel报表模板里如果自动输出结果呢?