Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 如何用ArrayList填充JSTL变量,并在不使用Servlet的情况下迭代它来填充select_Jsp_Arraylist_Jstl_El_Usebean - Fatal编程技术网

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中。我不知道为什么,var
specialityslist
没有被填充,它只是
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;
}`