使用值和綁定與JavaServer Faces之間有什麼區別,以及何時使用一個而不是另一個?爲了更清楚地說明我的問題,這裏給出幾個簡單的例子。值與綁定之間的區別
與在XHTML代碼,你就可以用 「價值」 在這裏JSF通常情況下:
<h:form>
<h:inputText value="#{hello.inputText}"/>
<h:commandButton value="Click Me!" action="#{hello.action}"/>
<h:outputText value="#{hello.outputText}"/>
</h:form>
那麼bean是:
// Imports
@ManagedBean(name="hello")
@RequestScoped
public class Hello implements Serializable {
private String inputText;
private String outputText;
public void setInputText(String inputText) {
this.inputText = inputText;
}
public String getInputText() {
return inputText;
}
// Other getters and setters etc.
// Other methods etc.
public String action() {
// Do other things
return "success";
}
}
然而,當使用 「綁定」 的XHTML代碼是:
<h:form>
<h:inputText binding="#{backing_hello.inputText}"/>
<h:commandButton value="Click Me!" action="#{backing_hello.action}"/>
<h:outputText value="Hello!" binding="#{backing_hello.outputText}"/>
</h:form>
和correspondibg豆被稱爲後臺bean,並在這裏:
// Imports
@ManagedBean(name="backing_hello")
@RequestScoped
public class Hello implements Serializable {
private HtmlInputText inputText;
private HtmlOutputText outputText;
public void setInputText(HtmlInputText inputText) {
this.inputText = inputText;
}
public HtmlInputText getInputText() {
return inputText;
}
// Other getters and setters etc.
// Other methods etc.
public String action() {
// Do other things
return "success";
}
}
這兩個系統之間有什麼實際的區別,什麼時候使用支持bean而不是普通的bean?是否可以同時使用?
我一直在困惑這個一段時間,並會很高興有這個清理。
相關:http://stackoverflow.com/questions/12506679/what -is-component-binding-in-jsf-when-it-is-is-preferred-to-be-used/12512672#12512672 – BalusC