我正在学习JSP和Servlet,我发现了一些奇怪的东西 - 如果我使用以下代码:
request.setAttribute("m", m);
RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);
其中request
是HttpServletRequest
对象而m
是Model
类的对象,我可以访问并显示{{1}的私有变量的值在我的JSP页面(welcome.jsp)中。
welcome.jsp的相关JSP代码:
m
Model类的相关Java代码:
Hello, <strong>${m.name}</strong>! Your data has been validated and is displayed below:<br/>
<br/>
Number: <strong> ${m.number} </strong>
<br/>
<br/>
Birth Month: <strong> ${m.month} </strong>
答案 0 :(得分:5)
${m.name}
与“raw”scriptlet代码中的以下内容基本相同
<%
Model m = (Model) pageContext.findAttribute("m");
if (m != null) {
String name = m.getName();
if (name != null) {
out.print(name);
}
}
%>
${m.name}
在getName()
课程中public
拨打Model
。
不要混淆它没有直接访问private
变量name
。