在jsp页面上显示ArrayList

时间:2015-02-03 09:22:44

标签: java list jsp select arraylist

我在jsp上有这个CRUD(创建,读取,更新,删除)项目。我没有使用Servlet,因为我自己创建了一个表。 我在DB(visualizzaUtenti()方法)中写了关于display-all-users的所有代码。不过,我只是不知道如何调用jsp scriplet中的函数。与jdbc的连接在我的localhost上工作正常:它位于一个名为DBUtiliy的封装类中。删除和插入查询也有效。有人可以帮忙吗?这是我的代码。

public List<Utente> visualizzaUtenti() {
    List<Utente> utenti = new ArrayList<Utente>();
    try {
        Statement statement = connessione.createStatement();
        ResultSet rs = statement.executeQuery("SELECT * FROM tbldatiutenti");
        while (rs.next()) {
            Utente utente = new Utente();
            utente.setId(rs.getString("id"));
            utente.setNome(rs.getString("nome"));
            utente.setCognome(rs.getString("cognome"));   
            utente.setEmail(rs.getString("email"));
            utente.setGenere(rs.getString("genere"));
            System.out.println("Visualizzazione effettuata");
            utenti.add(utente);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return utenti;
}

提前致谢。

3 个答案:

答案 0 :(得分:0)

在发布此类问题之前,请您自行进行一些搜索,有许多解决方案随时可用。

使用jsp:useBean和c:forEach循环如下所示并在setUtenti()中初始化bean值,

<jsp:useBean id="ClassList" scope="page" class="ClassName" />
<c:forEach var="title" items="${ClassList.utenti}">
 <c:out value="${title}" />
</c:forEach>

希望这有帮助。

答案 1 :(得分:0)

将JSTL核心库用于c:forEach标记,稍后将在示例中看到。

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

是否需要进口

<%@page import="java.util.List"%>
<%@page import="your.package.DBUtiliy"%>
<%@page import="your.package.Utente"%>

<%
    // make an object of the class
    DBUtiliy dbUtiliy= new DBUtiliy();
    List<Utente> listOfUtente= dbUtiliy.visualizzaUtenti();
%>

然后你只需要遍历项目

<div>
        <ul>
            <c:forEach items="<%=listOfUtente%>" var="utente">

                <li>${utente.someProperty}</li>

            </c:forEach>
        </ul>
    </div>

答案 2 :(得分:0)

最佳做法是使用servlet而不是在JSP中使用scriptlet,您将执行以下操作:

@WebServlet(name = "SampleServlet", urlPatterns = {"/sample"})
public class SampleServlet extends HttpServlet {

//your visualizzaUtenti() method code goes here

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
 request.setAttribute("utenti", visualizzaUtenti());
 RequestDispatcher dispatcher = request
                   .getRequestDispatcher("/YourJSPPage.jsp");  
   if (dispatcher != null){  
      dispatcher.forward(request, response);  
   }
 }
}

在JSP中,您可以执行以下操作:

<table>
  <tr><th>Id</th> <th>Nome</th> <th>Cognome</th> <th>Email</th> <th>Genere</th></tr>
  <c:forEach var="utente" items="${utenti}">
    <tr>
      <td><c:out value="${utente.id}" /></td>
      <td><c:out value="${utente.nome}" /></td>
      <td><c:out value="${utente.cognome}" /></td>
      <td><c:out value="${utente.email}" /></td>
      <td><c:out value="${utente.genere}" /></td>
    </tr>
  </c:forEach>
</table>