2014-11-20 1 views
1

Я хочу передать набор результатов с сайта Servlet на JSP и иметь его значение на моей странице JSP.Передача ResultSet из сервлета в JSP

Вот код сервлета:

protected void doPost (HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
{ 
    String username = request.getParameter("username"); 
    String password = request.getParameter("password"); 
    PrintWriter out = response.getWriter(); 
    Data select = new Data(username,password); 
    try { 
     Boolean result = select.Select(username, password); 
     if (result) { 
      ResultSet rset=select.SelectAll(username,password); 
      request.setAttribute("user",rset); 
      getServletConfig().getServletContext() 
        .getRequestDispatcher("/dashboard.jsp") 
        .forward(request,response); 

     } else 
      out.print("Please check your username and password");   
    } catch (Exception e) { 
     out.print("There seems to be a exception" + e); 
    } 
} 

Две функции называются здесь возвращает значение boolean и ResultSet значения соответственно Выбор функции возвращает boolean значение, где в качестве SelectAll возвращает ResultSet.

Моего JSP код выглядит следующим образом:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
Username: <c:out value="$(user.username)"/> <br/> 
Email: <c:out value="$(user.email)"/> <br/> 
Contact: <c:out value="$(user.contact)"/> <br/> 
+1

так какая ошибка или исключение вы столкнулись? – RE350

+0

Вы уверены, что класс ResultSet содержит свойство имени пользователя? !! –

+1

Я бы не передал результирующий набор непосредственно в JSP, вместо этого я вытащил информацию из набора результатов и разоблачил ее в надлежащем DTO. –

ответ

2

Чтобы продолжить результирующий инициализировать объект User, который должен быть добытчики и сеттера

ResultSet rset=select.SelectAll(username,password); 
if (rset.next()){ 
    User user = new User(); 
    user.setUsername(rset.get("username")); 
    user.setEmail(rset.get("email")); 
    user.setContact(rset.get("contact")); 
    request.setAttribute("user",user); 
    getServletContext().getRequestDispatcher("/dashboard.jsp") 
        .forward(request,response); 
} 
+0

Имя пользователя: $ (user.username) Электронная почта: $ (user.email) Контакт: $ (user.contact), это результат, который я получаю после создания класса и добавления содержимого набора результатов к нему. – user1761043

+0

Поскольку скобки используются для выражений EL $ {user.email}. –

+0

Спасибо, сэр, ты мне очень помог – user1761043

2

Не проходит ResultSet! Вместо этого следуйте шаблону DAO и создайте класс Java POJO с полями, которые будут отражать столбцы в вашей базе данных. Извлеките данные из ResultSet через while loop (while(rs.next()) {...}), присвойте значения вашему ранее созданному экземпляру класса POJO и добавьте этот экземпляр в List (если вы хотите передать несколько пользователей). Возвратный список (в случае нескольких пользователей) или просто экземпляр (в случае одного пользователя).

Установить список объектов как атрибут и перебрать его через JSTLforEach цикл в JSP (в случае нескольких пользователей).