2014-01-12 124 views
0

我已經看到很多示例代碼,其中用「f:ajax」標記調用方法的代碼,但方法名稱開始時方法的名稱會縮短標記與「得到」。我一直無法找到原因。下面是我的意思的一個例子。

例如,在XHTML文件 「sayWelcome」 被稱爲:
調用使用JSF2 + ajax的方法

... 
<h:commandButton value="Welcome Me"> 
    <f:ajax execute="name" render="output" /> 
</h:commandButton> 
<h:outputText id="output" value="#{helloBean.sayWelcome}" /> 
... 

但在bean的方法被稱爲 「getSayWelcome」:

public String getSayWelcome(){ 
     return name; 
} 

爲什麼 「獲取」 得到從「f:ajax」標籤中的方法名稱中刪除?

回答

1

JavaBeansSpecification定義了在充當屬性的函數之前添加get和set的屬性的命名約定,請參閱此article以獲取更多信息。

使用JSF的表達式語言也會抱怨您可以在此article中檢查此屬性的JavaBeans屬性名稱約定,請參閱使用值表達式引用對象屬性部分。

因此,當EL(表達式語言)發現一個句子爲<h:outputText id="output" value="#{helloBean.sayWelcome}" />時,它將嘗試爲sayWelcome屬性調用getter或setter函數,它取決於它是否需要分配值(setter)或獲取價值(getter)。

+0

謝謝@César-Loachamin,這是我一直在尋找的信息。 – hurleytom