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
Java 从会话属性创建下拉列表_Java_Jsp_Spring Mvc - Fatal编程技术网

Java 从会话属性创建下拉列表

Java 从会话属性创建下拉列表,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,在一个示例SpringMVC应用程序中,我在控制器的HttpSession中设置一个字符串列表,然后通过尝试从会话中检索相同的列表,尝试在JSP中创建一个下拉框。它不起作用了 JSP中的代码是: <% java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST"); %> <

在一个示例SpringMVC应用程序中,我在控制器的HttpSession中设置一个字符串列表,然后通过尝试从会话中检索相同的列表,尝试在JSP中创建一个下拉框。它不起作用了

JSP中的代码是:

   <% java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST"); %>
 <select name="userRole">
          <c:forEach var="role" items="${userRoleList}">
            <option value="${role}">${role}</option>
          </c:forEach>
        </select>
但无论我做什么,下拉框总是空的。
希望有人能帮上忙。

试着这样写
选择

<select name="userRole">
    <% 
      java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST");
      for(String role : userRoleList ) {
    %>
        <option value="<%=role%>"><%=role%></option>
    <% } %>
</select>
<% java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST"); 
    pageContext.setAttribute("userRoleList", userRoleList);
%>
<select name="userRole">
    <c:forEach var="role" items="${userRoleList}">
      <option value="${role}">${role}</option>
    </c:forEach>
</select>

试着像这样编写
选择

<select name="userRole">
    <% 
      java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST");
      for(String role : userRoleList ) {
    %>
        <option value="<%=role%>"><%=role%></option>
    <% } %>
</select>
<% java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST"); 
    pageContext.setAttribute("userRoleList", userRoleList);
%>
<select name="userRole">
    <c:forEach var="role" items="${userRoleList}">
      <option value="${role}">${role}</option>
    </c:forEach>
</select>

若要在JSTL中使用在Scriptlet中创建的变量,必须在pageContext中传递该变量,如下所示:

<select name="userRole">
    <% 
      java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST");
      for(String role : userRoleList ) {
    %>
        <option value="<%=role%>"><%=role%></option>
    <% } %>
</select>
<% java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST"); 
    pageContext.setAttribute("userRoleList", userRoleList);
%>
<select name="userRole">
    <c:forEach var="role" items="${userRoleList}">
      <option value="${role}">${role}</option>
    </c:forEach>
</select>

${role}
但有一个更简单的解决方案:

<select name="userRole">
    <c:forEach var="role" items="${ROLE_LIST}">
      <option value="${role}">${role}</option>
    </c:forEach>
</select>

${role}

若要在JSTL中使用在Scriptlet中创建的变量,必须在pageContext中传递该变量,如下所示:

<select name="userRole">
    <% 
      java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST");
      for(String role : userRoleList ) {
    %>
        <option value="<%=role%>"><%=role%></option>
    <% } %>
</select>
<% java.util.ArrayList<String> userRoleList = (java.util.ArrayList<String>) request.getSession().getAttribute("ROLE_LIST"); 
    pageContext.setAttribute("userRoleList", userRoleList);
%>
<select name="userRole">
    <c:forEach var="role" items="${userRoleList}">
      <option value="${role}">${role}</option>
    </c:forEach>
</select>

${role}
但有一个更简单的解决方案:

<select name="userRole">
    <c:forEach var="role" items="${ROLE_LIST}">
      <option value="${role}">${role}</option>
    </c:forEach>
</select>

${role}

在使用Spring MVC等MVC框架时,尽可能多地使用该框架提供的功能。SpringMVC支持自己的标记,它更易于编码和维护,您也不需要在其中使用JSTL
。谢谢。请记住这一点。Scriplets不好,不要使用它们。在使用Spring MVC这样的MVC框架时,尽可能多地使用该框架提供的功能。SpringMVC支持自己的标记,它更易于编码和维护,您也不需要在其中使用JSTL
。谢谢。我会记住这一点。便笺是不好的,不要用。