Как заполнить 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;
}`
Что я делаю неправильно? Если вам нужна дополнительная информация, просто спросите ее. Спасибо!