这段代码可以正常工作(减去2个日期之间的日期),但是在Eclipse中它显示为错误,并且我试图找出如何清除它以便不会出错。我没有写代码,顺便说一句...
<c:set var="start" value="${move.moveStart}"/>
<jsp:useBean id="start" type="java.lang.String"/>
<c:set var="end" value="${move.moveEnd}"/>
<jsp:useBean id="end" type="java.lang.String"/>
<%
int days = 0;
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dstart = sdf.parse(start);
Date dend = sdf.parse(end);
long milsecs = dend.getTime() = dstart.getTime();
days = (int)(milsec/(1000*60*60*24));
}catch(ParseException pe){
;
}
%>
我在sdf.parse(start)和。(end)上收到错误消息,称“它无法解析为变量”。我在这里想念什么?
最佳答案
由于您有一个名为move
的对象,并且您的计算似乎都不依赖于请求,因此为什么不在此对象上添加方法getDuration
却实际上是
@Transient
public int getDuration() {
int days = 0;
try{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dstart = sdf.parse(start);
Date dend = sdf.parse(end);
long milsecs = dend.getTime() = dstart.getTime();
days = (int)(milsec/(MILLIS_IN_A DAY));
}catch(ParseException pe){
;
}
return days;
}
这样你就可以在你的jsp中说
<c:out value = "${move.duration}"/>
可以通过查看此答案https://stackoverflow.com/a/3300078/9422来实现getDuration方法