Jsp 如何用ArrayList填充JSTL变量,并在不使用Servlet的情况下迭代它来填充select
我试图从一个名为Jsp 如何用ArrayList填充JSTL变量,并在不使用Servlet的情况下迭代它来填充select,jsp,arraylist,jstl,el,usebean,Jsp,Arraylist,Jstl,El,Usebean,我试图从一个名为getAllSpecialities()(位于MedicBean内部)的函数中获取一些specialities,并将它们存储在一个名为specialitiesList的JSTL/EL变量中。此函数返回一个Strings的ArrayList,它工作正常,返回所有特殊项,问题出在jsp中。我不知道为什么,varspecialityslist没有被填充,它只是null,所以我无法迭代它来填充选择 这就是我一直想做的: <select> <option valu
getAllSpecialities()
(位于MedicBean
内部)的函数中获取一些specialities
,并将它们存储在一个名为specialitiesList
的JSTL/EL变量中。此函数返回一个Strings
的ArrayList
,它工作正常,返回所有特殊项,问题出在jsp中。我不知道为什么,varspecialityslist
没有被填充,它只是null
,所以我无法迭代它来填充选择
这就是我一直想做的:
<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>
我做错了什么?如果你需要一些额外的信息,就去问吧。谢谢 你是如何在你的bean中填充特色的?调用getAllSpecialities()
时会得到什么?我不明白你的第一个问题getAllSpecialities()
返回字符串的ArrayList
。请添加getAllSpecialities()
方法的代码。我认为这与问题无关。正如我所说,我已经测试了该方法,它返回带有特殊性的ArrayList
。它很好用。您还需要查看它吗?是的,并在安装从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;
}`