我在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;
}
提前致谢。
答案 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>