2014-09-11 182 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())