JSP嵌入EL表达式?

我想在jsp页面里使用EL表达式的值做一个减法运算, ${tmp.id.rainDate}-${cropPlant},其中rainDate,cropPlant都是java.util.Date型,
例如rainDate是2012-05-06,cropPlant是2012-05-05,想在单元格里显示 1 ,可是得到的确是2012-05-06 - 2012-05-05,各位帮忙看看
怎么解决?
<table width="960" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">

                            <colgroup span="17" style="FONT-WEIGHT:bold; FONT-SIZE:12px; COLOR:#003366">
                            </colgroup>

                            <logic:iterate name="ls" indexId="index" id="tmp">
                                <tr>
                                    <TD width="212" style="WIDTH: 100px">
                                        ${tmp.id.rainDate }
                                    </TD>
                                    <TD width="190" style="WIDTH: 50px">
                                        ${tmp.id.rainDate}-${cropPlant}
                                    </TD>
                                    <TD width="135" style="WIDTH: 50px">
                                        ${tmp.id.rainValid }
                                    </TD>
                                    <TD width="135" style="WIDTH: 50px">
                                        ${tmp.id.irrigationData }
                                    </TD>
                                    <TD width="135" style="WIDTH: 50px">
                                        ${tmp.id.etData }
                                    </TD>
                                    <TD width="139" style="WIDTH: 50px">
                                        ${tmp.id.humidityData }
                                    </TD>
                                </tr>
                            </logic:iterate>
                        </table>

4个回答

${(tmp.id.rainDate-cropPlant)}
这样试试

liumianhuahe
liumianhuahe 谢谢啊,格式化标签可以解决的
大约 8 年之前 回复
iteye_5246
iteye_5246 如果是用格式标签要导入 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
大约 8 年之前 回复
iteye_5246
iteye_5246 2种做法 1.截取 ${fn:substring(string, begin, end)} 2.格式化标签 <fmt:formatDate value="${date}" type="date" dateStyle="default"/>
大约 8 年之前 回复
liumianhuahe
liumianhuahe 还有日期显示的值为2012-05-06 00:00:00.0,怎样显示为2012-05-06
大约 8 年之前 回复
liumianhuahe
liumianhuahe 恩,报错了.....
大约 8 年之前 回复
jinnianshilongnian
jinnianshilongnian 这样不行 日期类型不能直接相减
大约 8 年之前 回复

1、${tmp.id.rainDate}-${cropPlant} 这相当于是两个EL表达式 中间通过-连接; “-”是html;

2、日期类型不能直接相减

3、可以这样 两个日期的毫秒值相减(cropPlant.time---->cropPlant.getTime())
${tmp.id.rainDate.time - cropPlant.time}

4、EL表达式能完成的任务比较弱,因此复杂的计算建议在model/控制器完成

jinnianshilongnian
jinnianshilongnian 查查 fmt标签
大约 8 年之前 回复
liumianhuahe
liumianhuahe ${(tmp.id.rainDate.time-cropPlant.time)/(1000*60*60*24)}可以得到结果类,只不过得到的是1.0,2.0这样的数据,怎样显示1 , 2等等
大约 8 年之前 回复

那就 ${(tmp.id.rainDate.time-cropPlant.time)/1000*60*60*24}

iteye_5246
iteye_5246 1.${fn:substring(string, begin, end)} 2.${fn:split((tmp.id.rainDate.time-cropPlant.time)/(1000L*60*60*24),'.')[0]}
大约 8 年之前 回复
liumianhuahe
liumianhuahe 可以得到结果类,只不过得到的是1.0,2.0这样的数据,怎样显示1 , 2等等
大约 8 年之前 回复
iteye_5246
iteye_5246 嗯。哥们太给力了。
大约 8 年之前 回复
jinnianshilongnian
jinnianshilongnian ${(tmp.id.rainDate.time-cropPlant.time)/(1000L*60*60*24)}
大约 8 年之前 回复

当然也可以考虑使用可以自定义EL表达式方法方式实现

立即提问