2014-09-11 93 views
0

我正在为OCEWCD做准备。下面的代码是在JSP页面中出现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”对象的属性复制“地址”为“acct2 “对象的”地址“属性。

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

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

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

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

输出可能是这样的

[email protected]

请解释一下。由于

回答

3

转换为字符串发生,只有当物体在输出打印:

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

<jsp:setProperty name="acct2" property="address" value="${acct1.address}" />没有打印的输出,因此没有字符串转换发生的地方。实际上,这与acct2.setAddress(acct1.getAddress())