【问题标题】:how to add comma to string in jsp page如何在jsp页面中将逗号添加到字符串
【发布时间】:2013-10-31 07:38:06
【问题描述】:

我想在从数据库中检索到的字符串中添加逗号。

在下面的代码中,我从数据库中获取员工,其工作是教师

这是我的代码

<td>
    <% 
       sql2 = "SELECT empname FROM users WHERE job = ? ";
       ps2 = connection.prepareStatement(sql2);
       ps2.setString(1, jobname);
       rs2 = ps2.executeQuery();

         while (rs2.next()){ 
              String emp= rs2.getString("empname");
     %>                        
      <%=emp%> 

    <% } %>
</td>

【问题讨论】:

    标签: html jsp


    【解决方案1】:

    您可以在ArrayListempname 上创建

    ArrayList<String> empList = new ArrayList<String>();
    while (rs2.next())
    { 
       String emp= rs2.getString("empname");
       empList.add(emp);                  
    }
    

    那你可以使用JSTLisLast()

    <c:forEach items="${empList}" var="empName" varStatus="loop">
       <c:out value="${empName}" />
       <c:if test="${!loop.last}">,</c:if>
    </c:forEach>    
    

    您可以使用ResultSetisLast() 方法,但是, 我建议您不要在 JSP 中使用 scriptlet
    how to avoid Java Code in JSP-Files?

    要使用 JSTL,您只需将 jstl-1.2.jar 放入 /WEB-INF/lib
    并在 JSP 中

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
    

    更新评论回复

    它不打印结果。

    脚本是嵌入在页面代码中的原始 java,如果您在脚本中声明变量,那么它们将成为嵌入在页面中的局部变量。

    相比之下,JSTL 完全适用于范围属性,无论是在页面范围、请求范围还是会话范围。
    因此,要使用在 Scriptlets 中创建的 ArrayList empList,您需要修改代码。 see this answer

    <%
     ArrayList<String> empList = new ArrayList<String>();
     while (rs2.next())
     { 
       String emp= rs2.getString("empname");
       empList.add(emp);                  
     }
     pageContext.setAttribute("empList", empList);//pageContext is implicit object available
    %>  
    

    那么上面提到的 JSTL 代码就可以正常工作了。

    相关链接

    【讨论】:

    • 不打印结果。
    • @Sumit:对不起。我忘了告诉你 JSTL 需要 jar。请参阅我的更新答案。请参阅我更新的帖子。这是工作。我已经测试过了。
    【解决方案2】:

    您可以使用rs2.isLast() 来检查当前ResultSet 是否是最后一条记录,在这种情况下不要添加,。然而,这样做代价高昂,因为 JDBC 驱动程序将提前获取一行以确定当前行是否是结果集中的最后一行。

    【讨论】:

      【解决方案3】:

      这就够了..

      <% 
         sql2 = "SELECT empname FROM users WHERE job = ? ";
         ps2 = connection.prepareStatement(sql2);
         ps2.setString(1, jobname);
         rs2 = ps2.executeQuery();
         boolean b = rs2.last();
          int numberOfRecords = 0;
         if(b){
         numberOfRecords = rs.getRow();
         System.out.println(numberOfRecords);
           }
      rs = stmt.executeQuery(sql);
       while (rs.next()){ 
            if(numberOfRecords>1)
            {
            String emp= rs.getString("bank")+",";
      
            }
            else
            {
      
            String emp=rs.getString("bank");
      
            }
            numberOfRecords--;
       %>                        
        <%=emp%> 
      
      <% } %>
      

      【讨论】:

        猜你喜欢
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        相关资源
        最近更新 更多