Как заполнить JSTL var ArrayList и выполнить итерацию, чтобы заполнить выборку без использования сервлета

Я пытаюсь получить немного specialities из функции под названием getAllSpecialities() (который внутри MedicBean) и сохраните их в переменной JSTL/EL, которая называется specialitiesList, Эта функция возвращает ArrayList из Strings и он работает нормально, он возвращает все специальности, проблема приходит в JSP. Я не знаю почему, вар specialitiesList не заполняется, это просто nullпоэтому я не могу перебрать его, чтобы заполнить select,

Вот что я пытался сделать:

<select>
    <option value="" disabled selected>Select an speciality</option>
    <jsp:useBean id="medicAux" class="Model.MedicBean"/>
    <c:set var="specialitiesList" value="${medicAux.allSpecialities}"/>
    <c:forEach items="${specialitiesList}" var="speciality">
        <option value="${speciality}">${speciality}</option>
    </c:forEach>
</select>

Это getAllSpecialities() метод:

public ArrayList<String> getAllSpecialities(){

    ResultSet rs = null;
    Connection conn = null;
    PreparedStatement ps = null;

    ArrayList<String> specialities = new ArrayList<>();

    try {
        conn = Conexion.conectar();

        String query = "SELECT DISTINCT SPECIALITY FROM MEDICO";  
        ps = conn.prepareStatement(query); // create a statement

        rs = ps.executeQuery();

        while (rs.next()) {

            specialities.add(rs.getString("speciality"));
        }
    } catch (SQLException ex) {
        Logger.getLogger(MedicoBean.class.getName()).log(Level.SEVERE, null, ex);
        System.out.println("error: "+ex.getMessage());
    }

    Conexion.desconectar(conn);

    return specialities;
}`

Что я делаю неправильно? Если вам нужна дополнительная информация, просто спросите ее. Спасибо!

0 ответов

Другие вопросы по тегам