2013-10-25 4 views
0

В Java Bean страницы Я пишу этот код: -Как заполнить выпадающий список с помощью HashTable? или HashMap?

package sandip; 

import java.sql; 
import java.util.*; 
import java.text.*; 
import sandip.DataBaseConnection; 

public class UserBean { 

    private ArrayList<Assay> assays = new ArrayList<Assay>(); 
    private ArrayList<String> StringValue = new ArrayList<String>(); 

    private Map<String, String> details = new HashMap<String, String>(); 

public void setDetails() {  

    Statement stmt = null; 
    ResultSet rs = null; 
    String sql = null; 
    DataBaseConnection obj = new DataBaseConnection(); 
    Connection conn = null; 
    conn = obj.connectToDb(); 


    try{ 

     stmt = conn.createStatement(); 
     sql = "SELECT `email`, `password` FROM `accounts` LIMIT 0, 12"; 
     rs = stmt.executeQuery(sql); 

     while(rs.next()) { 
     details.put(rs.getString("password"), rs.getString("email")); 
     } 
    }catch(SQLException e) { 
     e.printStackTrace(); 
    }catch(Exception ex) { 
     ex.printStackTrace(); 
    } 

    } 

    public Map<String, String> getDetails() { 

    return this.details; 
    } 
} 

и в моей странице JSP Я использовал, чтобы итерацию через петлю: -

Но не печатает anything.What Должен ли я изменить прямо сейчас «Если мне нужно что-нибудь сделать?

<h3>Hashtable iteration</h3> 
<table border="1"> 
    <c:forEach items="${userDetails.details}" var="item"> 
    <tr> 
     <td align="center"><c:out value="${item.name}"/></td> 
     <td align="center">${item.value}</td> 
    </tr> 
    </c:forEach> 
    <br> 
    <ol> 
    <c:forEach items="${userDetails.details}" var="item"> 
     <li><c:out value="${item.key}"/>=<c:out value="${item.value}"/></li> 
     </c:forEach> 
    </ol> 

В $ {item.key} не печатается значение

ответ

0

Каким образом UserDetails установить в JSP? Кто вызывает метод setDetails?

В любом случае, не имеет смысла иметь метод setter без каких-либо аргументов, поскольку он нарушает соглашение о java bean. Согласно вашему getDetails() геттеру, ваш setDetails() должен принять параметр Map<String, String> в качестве параметра. Я бы использовал UserBean только как держатель данных и переместил код извлечения базы данных в сервлет (или другой контроллер, службу или объект DAO).

Смежные вопросы