请检查以下代码,我将数据附加到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
,我可以看到数据已经加载。
为什么会这样?
答案 0 :(得分:3)
发现了这个问题。 JSTl中存在错误。正确的打印方式是
<c:out value="${userInfo.email}"/>
我错过了代码中的value
部分和其他问题。
答案 1 :(得分:1)
您应该在jstl标记中使用c:out
和value
属性
<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