JSP c:out标记不显示值

时间:2019-04-22 19:49:03

标签: java html jsp jsp-tags taglib

我正在研究一个使用JSP的项目。我正在尝试使用c:out标记来防止xss。在我的一个JSP页面上,c:out标记不适用于任何变量,并且我不确定这是怎么回事。 c:out似乎在其他页面上工作,所以我有点迷路。

这是到目前为止的代码:

<%@ page language="java" 
import="java.sql.*,java.util.*,com.project.admin.*" 
errorPage="Error.jsp"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<html>
<head>
<%
String HELP_PAGE = null;
AdminControlModel adminModel = new AdminControlModel();
User userObj = null;

ArrayList systemUsers = adminModel.selectUsers();

%>

</head>

<body>


<div class="container">


    <div class="row">

        <div class="col">
            <div class="card">
                <div class="card-body">
                <form>

                    <div class="table-responsive">
                        <table class="table" style="font-size: 13px !important;">

                        <thead class="thead-dark">
                            <tr>
                                <th scope="col">User ID</th>
                                <th scope="col">Account ID</th>
                                <th scope="col">User Type</th>
                                <th scope="col">User Name</th>
                                <th scope="col">Effective From</th>
                                <th scope="col">Expires On</th>
                                <th scope="col">Added On</th>
                            </tr>
                        </thead>

                        <%!
                            Integer userID                   = 12345;
                            String user                      = null;
                            String userRole                  = null;
                            String userName                  = null;
                            java.sql.Date userEffDate        = null;
                            java.sql.Date userExpDate        = null;
                            java.sql.Date userAddDate        = null;
                            java.sql.Date userUpdationDate   = null;
                            String userAddUser               = null;
                            String userUpdateUser            = null;
                        %>
                        <%
                            for(int i = 0 ; i < systemUsers.size() ; i++) {

                            userObj = (User) systemUsers.get(i);

                            userID = userObj.getUserID();
                            user = userObj.getUser().toString();
                            userRole = userObj.getUserRole();
                            userName = userObj.getUserName();
                            userEffDate = userObj.getUserEffDate();
                            userExpDate = userObj.getUserExpDate();
                            userAddDate = userObj.getUserAddDate();
                            userUpdationDate = userObj.getUserUpdationDate();
                            userAddUser = userObj.getUserAddUser();
                            userUpdateUser = userObj.getUserUpdateUser();

                            if(userUpdateUser == null) {
                            userUpdateUser = "&nbsp;";
                            }

                            out.println("<tr>");

                        %>

                            <td>
                                <c:out value="${userID}" />
                            </td>
                            <td>
                                <c:out value="${user}" />
                            </td>
                            <td>
                                <%= userRole %>
                            </td>
                            <td>
                                <%= userName %>
                            </td>
                            <td nowrap>
                                <%= userEffDate %>
                            </td>
                            <td nowrap>
                                <%= userExpDate %>
                            </td>
                            <td nowrap>
                                <%= userAddDate %>
                            </td>

                        <%
                                out.println("</tr>");
                            }
                        %>
                        </table>

                    <br>


                    </div> <!-- Table responcive   End -->
                </form>


                </div><!-- card-body  End -->
            </div><!-- card End -->
        </div><!-- col End -->

    </div> <!-- Row End -->
</div> <!-- Container End -->

</body>

c:out中的变量未显示,对于那些特定的表值仅显示为空白。

我想要的结果是变量显示在标签内部。

因此它应该类似于:

 <td>The Custom variables inside of c:out</td>

但是我什么也没得到:

 <td></td>

变量的<%=%>标记正在工作,但是我想将它们转换为c:out标记以防止xss。如果有人对为什么会发生有任何想法,请告诉我谢谢

0 个答案:

没有答案