Java 从会话属性创建下拉列表
在一个示例SpringMVC应用程序中,我在控制器的HttpSession中设置一个字符串列表,然后通过尝试从会话中检索相同的列表,尝试在JSP中创建一个下拉框。它不起作用了 JSP中的代码是: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"); %> <
<% 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
。谢谢。我会记住这一点。便笺是不好的,不要用。