有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JSTL如果条件在JSP页面中不起作用

我基本上是试图向JSP页面发送一个arraylist,页面中的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);

    }
}

检查数据。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>

功能权限类:

String ID = "";
String Status = "";

//Getter Setter & Constructors

我基本上需要检查参数“Status”中的值是否等于1,然后为下拉列表中的所有选项设置所选选项为1,依此类推

但是,当我运行它时,没有选择正确的值。我的代码正确吗


共 (1) 个答案

  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>
    

    还可以定义以s开头的status字段,而不是S