if (s_date.equals("") || rs_oracle.getString("sent_date") like s_date_k)
{
}s_date_k 是一个String变量。
下面是出错信息:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 54 in the jsp file: /enquiry_backlog_1.jsp
Generated servlet error:
Syntax error on token "like", . expected
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 54 in the jsp file: /enquiry_backlog_1.jsp
Generated servlet error:
Syntax error on token "like", . expected
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.
--------------------------------------------------------------------------------Apache Tomcat/5.5.20

解决方案 »

  1.   

    rs_oracle.getString("sent_date") like s_date_k
    like什么意思?
      

  2.   

    like  不是Java里面的操作 是sql的你这样写肯定有编译错误
      

  3.   

    if (s_date.equals("") ¦ ¦ rs_oracle.getString("sent_date") like s_date_k) 

    } 按你的意思
    可以这样写
    if (s_date.equals("") || rs_oracle.getString("sent_date").indexOf(s_date_k) !=-1 ) 


      

  4.   

    if (s_date.equals("") ¦ ¦ rs_oracle.getString("sent_date").equals(s_date_k)) 

    }
      

  5.   

    哦。我来详细说说我的想法。rs_oracle.getString("sent_date") 是结果里取得的记录的发出日期。
    s_date是 查询要求的“实际发出日期”如:"2008-07-29"
    s_date_k是加上一个“%”的STRING  接上"如": "2008-07-29%"我想要的是结果集中符合查询条件s_date_k的记录。 谢谢大家帮助给个解决方法吧,要基于这个ResultSet的。
      

  6.   


    谢谢!感觉这样就是对的了。 这样改后JSP也可以不出错了。
    但因为结果集中的sent_date是值都是这样的"2008-07-28 16:19:37",你能帮我再改改吗?
      

  7.   

    %是sql里的通配符  你把s_date里的%去掉,直接2008-07-29就能找出该天的所有记录了
      

  8.   

    like是在sql server中使用模糊查询时用的,怎么可以用在这里.
    显然是不可以了...哈哈...
      

  9.   

    回9楼dvictor:运行出错了。 有一点前面忘了说,在结果集中SENT_DATE有时会有NULL值的。
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /enquiry_backlog_1.jsp:6360: 
    61: while (rs_oracle.next())
    62: {
    63: if (s_date.equals("") || rs_oracle.getString("sent_date").indexOf(s_date)!=-1)
    64: {
    65: lb_rowid = lb_rowid + 1;
    66: if ((lb_rowid -1)% 30 == 0)
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.lang.NullPointerException
    org.apache.jsp.enquiry_005fbacklog_005f1_jsp._jspService(enquiry_005fbacklog_005f1_jsp.java:122)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.
      

  10.   

    这句话if (s_date.equals("") ¦ ¦ rs_oracle.getString("sent_date").indexOf(s_date)!=-1) 的意思是说:
    如果系统用户没有指定"发货日期" 或结果集中的记录符合系统用户指定的"发货日期",则执行以下代码,在浏览器中返回记录。 [第122行代码是:<tr style="color: <%=fcolor%>">]
    if (s_date.equals("") || rs_oracle.getString("sent_date").indexOf(s_date)!=-1)
    {
    lb_rowid = lb_rowid + 1;
    if ((lb_rowid -1)% 30 == 0)
    {
    %>
    <tr>
    <td bgcolor="#FFFF00">ID</td>
    <td bgcolor="#FFFF00">Entry_date</td>
    <td bgcolor="#FFFF00">Required_date</td>
    <td bgcolor="#FFFF00">Created_by</td>
    <td bgcolor="#FFFF00">Order_num</td>
    <td bgcolor="#FFFF00">Acc_num</td>
    <td bgcolor="#FFFF00">Type</td>
    <td bgcolor="#FFFF00">Description</td>
    <td bgcolor="#FFFF00">EAR</td>
    <td bgcolor="#FFFF00">Serial_num</td>
    <td bgcolor="#FFFF00">Users_name</td>
    <td bgcolor="#FFFF00">Entry_date24</td>
    <td bgcolor="#FFFF00">Sent_date</td>
    <td bgcolor="#FFFF00">Current_Location</td>
    <td bgcolor="#FFFF00">TRX_Time</td>
    <td bgcolor="#FFFF00">Technician</td>
    <td bgcolor="#FFFF00">Hold Time</td>
    <td bgcolor="#FFFF00">Release Time</td>
    </tr>
    <%
    }if (rs_oracle.getString("sent_date") == null)
    {if (rs_oracle.getString("hold_time") != null)
    {if (rs_oracle.getString("release_time") == null)
    {
    fcolor = "#FF0000"; //大红 被HOLD住订单
    }
    else
    {
    fcolor = "#0066FF"; //明绿
    }
    }else
    {
    fcolor = "#0066FF"; //明绿
    }}else
    {
    fcolor = "#000000"; //浅绿
    }%><tr style="color: <%=fcolor%>">
    <td align="right"><%=lb_rowid%></td>
    <td nowrap><%=rs_oracle.getString("creation_date")%></td>
    <td nowrap><%=rs_oracle.getString("required_date")%></td>
    <td nowrap><%=rs_oracle.getString("created_by")%></td>
    <td nowrap><%=rs_oracle.getString("order_num")%></td>
    <td nowrap><%=rs_oracle.getString("acc_num")%></td>
    <td nowrap><%=rs_oracle.getString("type")%></td>
    <td nowrap><%=rs_oracle.getString("description")%></td>
    <td nowrap><%=rs_oracle.getString("ear")%></td>
    <td nowrap><%=rs_oracle.getString("serial_num")%></td>
    <td nowrap><%=rs_oracle.getString("users_name")%></td>
    <td nowrap><%=rs_oracle.getString("entry_date24")%></td>
    <td nowrap><%=(rs_oracle.getString("sent_date")==null?"In Process":rs_oracle.getString("sent_date"))%></td>
    <td nowrap><%=(rs_oracle.getString("ltlocation")==null?"Sent":rs_oracle.getString("ltlocation"))%></td>
    <td nowrap><%=(rs_oracle.getString("lttime")==null?"Sent":rs_oracle.getString("lttime"))%></td>
    <td nowrap><%=(rs_oracle.getString("ltteam")==null?"Sent":rs_oracle.getString("ltteam"))%></td>
    <td nowrap><%=(rs_oracle.getString("hold_time")==null?"Not Available":rs_oracle.getString("hold_time"))%></td>
    <td nowrap><%=(rs_oracle.getString("release_time")==null?"Not Available":rs_oracle.getString("release_time"))%></td></tr><%}
    }%>
      

  11.   


    那就再加个条件
    if (s_date.equals("")||rs_oracle.getString("sent_date").indexOf(s_date)==null|| rs_oracle.getString("sent_date").indexOf(s_date)!=-1) 
      

  12.   

    like不是java中的关键字,而是sql中的关键字.这里如果要比较可以使用正则表达式.
      

  13.   

    like
    不要乱用东东
      

  14.   

    回dvictor:出错了:--------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 54 in the jsp file: /enquiry_backlog_1.jsp
    Generated servlet error:
    The operator == is undefined for the argument type(s) int, null
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 54 in the jsp file: /enquiry_backlog_1.jsp
    Generated servlet error:
    The operator == is undefined for the argument type(s) int, null
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.谢谢~~
      

  15.   

    回dvictor:我现在在用以下的:
    if (s_date.equals("") || rs_oracle.getString("sent_date") == null  || rs_oracle.getString("sent_date").indexOf(s_date)!= -1)
    {}rs_oracle.getString("sent_date") == null  这样子页面是可以完成运行的,查询结果就是符合指定出货日期和SENT_DATE为NULL的记录。 
      

  16.   

    Syntax error on token "like", . expected 
    哥们,语法错误,没有like这个关键字
      

  17.   

    like不是java中的key,所以不能识别
      

  18.   

    like ?
    把查询出来的东东,放在一个变量中然后在来比较判断。
      

  19.   

    if (s_date.equals("") ¦ ¦ rs_oracle.getString("sent_date").startsWith(s_date_k) ) 

    } startsWith就是指是不是以s_date_k开头的字符串,不知道符合你的要求不,indexOf不等于-1指包含s_date_k
      

  20.   

    SENT_DATE为null是指的数据库中的null吧??那个里边的null和java中的null不一样的...建议你直接用sql语句来解决问题.
    select * from tablename collabel is null
      

  21.   


    呵呵 的确是我多拷贝了 没仔细看 
    Generated servlet error: 
    The operator == is undefined for the argument type(s) int, null 
    这个报错就是我那copy错误引起的
    现在还有什么问题??
      

  22.   

    你的这个业务交个数据库做撒,
    一个SQL语句就解决的,你查那么多数据出来,再用Java来比对,太浪费资源了。
      

  23.   

    n.  爱好#同样的人或物
    v.  喜欢; 希望, 想要, 想; 愿意; 适合于; 喜欢; 希望; 愿意
    adj.  相像的; 类似的; 有相同性质的; 可能
    adv.  可能, 多半; 一样地
    prep.  喜欢; 希望, 想要, 想; 愿意; 适合于#喜欢; 希望; 愿意#爱好#像, 如; 与相称的; 和...一样; 像要#相像的; 类似的; 有相同性质的; 可能#可能, 多半; 一样地#同样的人或物#如同, 好像#喜欢, 想, 愿意
    conj.  如同, 好像就是这些意思。
      

  24.   

    like 不能在java里做判断语句
      

  25.   


    现在页面是可以完成运行的,但查询结果包含1.符合指定出货日期的记录和2.SENT_DATE为NULL的记录。我不希望有2.SENT_DATE为NULL的记录。 谢谢再费心帮我看看!!
      

  26.   

    谢谢,最后是如下解决的:
    1. 空值问题先在java里解决
    2. 非空值后用rs.sent_date.startsWith(s_date)来判断解决。再次感谢大家的帮助!