В чем разница между использованием значения и привязкой к JavaServer Faces, и когда вы будете использовать один, а не другой? Чтобы яснее понять, что мой вопрос, здесь приводятся несколько простых примеров.
Обычно с JSF в коде XHTML вы должны использовать "значение", как здесь:
<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>
а соответствующий bean называется поддержкой 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? Можно ли использовать оба?
Я немного смутился об этом в течение некоторого времени и был бы очень благодарен за то, что это прояснилось.