String sql1="select distinct article_clff from tb_blog_article";
<select name="article_clff">
 <%while(Rs1.next()){ %>
 <option value="<%=Rs1.getString("article_clff")%>"><%=Rs1.getString("article_clff") %></option> 
<%}Rs1.close(); %>
  </select>报红色的那行有错误
org.apache.jasper.JasperException: An exception occurred processing <%while(Rs1.next()){%>
<%=Rs1.getString("article_clff")%>
<%}Rs1.close();%>
直接显示可以显示的请问应该怎么改?

解决方案 »

  1.   

    <option value='<%=Rs1.getString("article_clff")%>'><%=Rs1.getString("article_clff") %></option>  并在while前后加<select> 试试
      

  2.   

    楼主应该把控制台的问题贴出来看看,不要复制JSP错误页面的错误信息,那个在大多情况下都不好用、
      

  3.   

    <option value='<%=Rs1.getString("article_clff")%>'><%=Rs1.getString("article_clff")%></option>  
    这样就OK,为什么Rs1,r要大写!不符合Java命名规范......
      

  4.   


    什么控制台?
    tomcat那个黑乎乎里面的?没有错误。
    我的是纯jsp的
      

  5.   


    <option value="<%=Rs1.getString("article_clff")%>"><%=Rs1.getString("article_clff") %></option>  // 引号用“\”来转义<option value="<%=Rs1.getString(\"article_clff\")%>"><%=Rs1.getString("article_clff") %></option>  
      

  6.   

    javax.servlet.ServletException: java.sql.SQLException: No data found
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
    org.apache.jsp.liudan.admin.za_005fhdk_jsp._jspService(za_005fhdk_jsp.java:209)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  7.   

    你的sql语句写错了:字段没有逗号吗
    String sql1="select distinct  article_clff from tb_blog_article";
    如果想在option中显示内容你可以jstl来实现的吗
    导入jstl
    <c:forech items="${requestScope.自己的保存时的集合}" var="option">
        <option value="${option.你的字段}"></option>
    </sc:forech>
    这样就可以了
      

  8.   

    String sql1="select distinct article_clff from tb_blog_article";
    sql写错了吧!distinct和这个article_clff是两个字段中间怎么没有逗号分开呢?
      

  9.   

    distinct是sql关键字,作用是不显示制定字段的重复数据
      

  10.   

    sql语句错误应该为String sql1="select distinct,article_clff from tb_blog_article";
      

  11.   


    为什么会加逗号?distinct不是字段 是一个关键字我加了之后会报错
    javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。
      

  12.   


    但是
    <%while(Rs1.next()){%>
    <%=Rs1.getString("article_clff")%>
    <%}Rs1.close();%>
    可以显示的
      

  13.   

    <option value=<%=Rs1.getString("article_clff")%>><%=Rs1.getString("article_clff")%></option>
    这样勒?
      

  14.   


    javax.servlet.ServletException: java.sql.SQLException: No data found还是这个错误
      

  15.   

    自己以前写的,你的生气了语句前面的字段之间要有逗号隔开,
    String sql = "SELECT id,userName FROM userinfo ";
    <% 
       int i = 1;
    %><select name="" id="">
    <% 
       while (rs.next()) {
    %>
           <option value="<%=rs.getString(1) %>"><%=rs.getString(2) %></option>
    <% } %>
    </select>
      

  16.   

    ResultSet起到的作用就是完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取,但是你读取了2次 : Rs1.getString("article_clff") 。 这是最基本的一个ResultSet
    除此之外,还有可滚动的ResultSet类型,可更新的ResultSet和可保持的ResultSet 。
    像你这样的情况,就需要选择可滚动的ResultSet
    Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency) 
    ResultSet rs = st.executeQuery(sqlStr) 
    其中两个参数的意义是: 
    resultSetType是设置ResultSet对象的类型可滚动,或者是不可滚动。取值如下: 
           ResultSet.TYPE_FORWARD_ONLY只能向前滚动 
           ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE这两个方法都能够实现任意的前后滚动,使用各种移动的ResultSet指针的方法。二者的区别在于前者对于修改不敏感,而后者对于修改敏感。 
    resultSetConcurency是设置ResultSet对象能够修改的,取值如下: 
           ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。 
           ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。 
    所以如果只是想要可以滚动的类型的Result只要把Statement如下赋值就行了。 Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE, 
                              ResultSet.CONCUR_READ_ONLY); 
    ResultSet rs = st.excuteQuery(sqlStr); 用这个Statement执行的查询语句得到的就是可滚动的ResultSet。 
     
      

  17.   


    谢谢了 后来用
    Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    就可以了