JSTL:为什么我的数据没有在JSP中打印?

时间:2017-04-17 07:23:14

标签: java html jsp servlets requestdispatcher

请检查以下代码,我将数据附加到RequestDispatcher

Servlet
request.setAttribute("userInfo", userInfo);
            request.setAttribute("userProfession", userProfession);
            request.setAttribute("userQualification", userQualification);

            RequestDispatcher dispatch = request.getRequestDispatcher("/WEB-INF/jsp/profile.jsp");
            dispatch.forward(request, response);

所有附加属性均为beans

在我的JSP中,我得到的数据如下。

<head>
      <%@taglib prefix="c" uri= "http://java.sun.com/jsp/jstl/core" %>
</head>

<body>
<h5>Name</h5>
<p class="xpanel_txt1"><c out="${userInfo.firstName}"/> <c out=" "/> <c out="${userInfo.lastName}"/></p>
</body>

现在有趣的是,当显示网站JSP时,我只看到一个空白字段,其中应输入上述数据。但是,如果我在Google Chrome中打开inspector,我可以看到数据已经加载。

enter image description here

为什么会这样?

3 个答案:

答案 0 :(得分:3)

发现了这个问题。 JSTl中存在错误。正确的打印方式是

<c:out value="${userInfo.email}"/>

我错过了代码中的value部分和其他问题。

答案 1 :(得分:1)

您应该在jstl标记中使用c:outvalue属性

<head>
          <%@taglib prefix="c" uri= "http://java.sun.com/jsp/jstl/core" %>
    </head>

    <body>
    <h5>Name</h5>
    <p class="xpanel_txt1"><c:out value="${userInfo.firstName}"/> <c:out value=" "/> <c:out value="${userInfo.lastName}"/></p>
    </body>

答案 2 :(得分:1)

仅供参考,而不是

<p class="xpanel_txt1"><c:out value="${userInfo.firstName}"/> <c:out value=" "/> <c:out value="${userInfo.lastName}"/></p>

您可以直接使用EL显示输出

<p class="xpanel_txt1">${userInfo.firstName} ${userInfo.lastName}</p>

有关这两种方法的区别,请参阅此答案 - https://stackoverflow.com/a/6574812/7873361