Java &引用;“开始”;无法解析为变量

Java &引用;“开始”;无法解析为变量,java,jsp,jstl,Java,Jsp,Jstl,这段代码正常工作(减去两个日期之间的天数),但它在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

这段代码正常工作(减去两个日期之间的天数),但它在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)上的错误,即它“无法解析为变量”。我在这里遗漏了什么?

使用以下代码

   <% pageContext.getAttribute("start"); %>

在scriptlet中


当您使用jstl设置变量时,默认情况下它在pageContextScope中,因此您可以从pageContext中获取它,因为您有一个名为移动的对象,并且您的计算似乎都不依赖于请求,为什么不在此对象上添加一个基本上不依赖的方法

@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}"/>


getDuration方法可以通过查看这个答案来实现

我对此不太了解,但是您似乎有一个名为start的变量和一个名为start的bean。我不知道你的豆子是干什么用的。“end”也是一样。我的第一个尝试是将bean重命名为startx和endx,看看会发生什么。使用这些bean,我希望在代码中看到类似start.getStartingValue()的内容。会
sdf.parse(start)
变成
sdf.parse(“start”)
?否,
“start”
String
的实例,其中
start
是在scriptlet中声明的变量