JSP / Servlet表达式语言私有变量访问

时间:2014-01-22 11:51:43

标签: jsp servlets jstl el

我正在学习JSP和Servlet,我发现了一些奇怪的东西 - 如果我使用以下代码:

request.setAttribute("m", m);
RequestDispatcher rd = request.getRequestDispatcher("welcome.jsp");
rd.forward(request, response);

其中requestHttpServletRequest对象而mModel类的对象,我可以访问并显示{{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>

1 个答案:

答案 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

参考链接