Galera, estou criando uma minúscula aplicação afim de praticar o desenvolvimento de JSP’s e Servlets.
Deparei-me agora com um problema muito exdrúxulo que não estou conseguindo resolver.
Criei uma JSP assim:
<%@ page language="java" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Iterator" %>
<jsp:useBean id="usersList" scope="page" class="UsersData" />
<%
ArrayList< User > userList = usersList.getUsersList();
Iterator iterator = userList.iterator();
%>
<% while(iterator.hasNext()) %>
<% { %>
<%
User user = iterator.next();
out.printf("Username: %s | Password: %s<br>", user.getUsername(), user.getPassword());
%>
<% } %>
E o Bean UsersData:
import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import java.util.ArrayList;
import com.sun.rowset.CachedRowSetImpl;
public class UsersData
{
private CachedRowSet rs;
public UsersData() throws Exception
{
String instSql = "SELECT * FROM user_list ORDER BY username ASC";
Class.forName("com.mysql.jdbc.Driver");
rs = new CachedRowSetImpl();
rs.setUsername("test");
rs.setPassword("test");
rs.setCommand(instSql);
rs.execute();
}
public ArrayList< User > getUsersList() throws SQLException
{
ArrayList< User > users = new ArrayList< User >();
rs.beforeFirst();
while(rs.next())
{ users.add(new User(rs.getString(2), rs.getString(3))); }
return users;
}
}
Acontece que quando tento rodar o JSP, a primeira linha do rastreamento de pilha que define bem o erro é essa: /usersListView.jsp(5,0) The value for the useBean class attribute UsersData is invalid.
Só que não entendo, eu achava que os BEans deveriam ficar na pasta WEB-INF\classes, mas aí ocorria o erro citado. Então coloquei o Bean na mesma pasta do JSP, e o erro persistiu.
Alguém poderia me ajudar nesse erro superfluamente insolúvel?