【问题标题】:JSP - Expression LanguageJSP - 表达式语言
【发布时间】:2014-09-11 06:39:36
【问题描述】:

我正在为 OCEWCD 做准备。下面的代码出现在一个jsp页面中

<jsp:useBean id="acct1" class="aaa.bbb.Account"/>

<jsp:useBean id="acct2" class="aaa.bbb.Account " />

还有

<jsp:setProperty name="acct2" property="address" value="${acct1.address}" />

此代码试图将“acct1”对象的“address”属性复制到“acct2”对象的“address”属性。

解释说,el 表达式 (value="${acct1.address}") 带来了对 acct1 对象的地址属性的引用。

但我的理解是,它会带上acct1对象的地址属性的字符串表示(如-acct1.getAddress().toString())。

因为如果下面的代码出现在一个jsp页面中,

<%
Request.setAttribute(“A”, new A());
%>
${A}

输出可能类似于

org.apache.jsp.newjsp_jsp$1A@1bcdccc3.

解释一下。谢谢

【问题讨论】:

    标签: java jsp servlets el


    【解决方案1】:

    只有在输出中打印对象时才会转换为字符串:

    <% Request.setAttribute(“A”, new A()); %>
    ${A} <%-- A.toString() is called here --%>
    

    &lt;jsp:setProperty name="acct2" property="address" value="${acct1.address}" /&gt; 中没有任何内容打印到输出中,因此不会发生字符串转换。实际上,这与acct2.setAddress(acct1.getAddress()) 相同

    【讨论】:

      猜你喜欢
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      相关资源
      最近更新 更多