[英]JSTL If condition not working in JSP Page
我基本上是想将一个数组列表发送到JSP页面,并且页面中的if条件确定在下拉列表中将哪个值设置为“ selected”。
Servlet:
public class FeatureServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArrayList<FeaturePermission> permList = new ArrayList<FeaturePermission>();
FeaturePermission perm = new FeaturePermission();
perm.setStatus("2");
permList.add(perm);
request.setAttribute("perms", permList);
RequestDispatcher rd = getServletContext().getRequestDispatcher("/CheckData.jsp");
rd.forward(request, response);
}
}
CheckData.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test Page</title>
</head>
<body>
<select id="check_status" name="check_status">
<optgroup label="Choose Status">
<option value="1" <c:if test="${perms[0].status == 1}"> <c:out value="selected=selected"></c:out></c:if>>1</option>
<option value="2" <c:if test="${perms[0].status == 2}"> <c:out value="selected=selected"></c:out></c:if>>2</option>
</optgroup>
</select>
</body>
</html>
FeaturePermission类:
String ID = "";
String Status = "";
//Getter Setter & Constructors
我基本上需要检查参数'Status'中的值是否等于1,然后将所选选项设置为1,依此类推,对于下拉列表中的所有选择。
但是,当我运行它时,未选择正确的值。 我的代码正确吗?
对于表达式语言中的字符串比较, ==
和eq
相同。 但您必须在'
标记内添加'
'1'
和'2'
。 喜欢:
<option value="1" <c:if test="${perms[0].status == '1'}"> <c:out value="selected=selected"></c:out></c:if>>1</option>
<option value="2" <c:if test="${perms[0].status == '2'}"> <c:out value="selected=selected"></c:out></c:if>>2</option>
还定义status
字段,以s
代替S
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.