我有一个名为SearchBean的东西:
@ManagedBean(name = "searchBean")
@RequestScoped
public class SearchBean implements Serializable
{
private String input = null;
// getter methods
public String getInput() {
return input;
}
// setter method
public void setInput(String input) {
this.input = input;
}
public String Submit() {
return null;
}
}
我可以使用@ManagedProperty将其注入到另一个bean中吗?例如:
@ManagedBean(name = "bookBean")
@RequestScoped
public class BookBean implements Serializable
{
@ManagedProperty(value = "#{searchBean}")
private SearchBean searchBean;
@PostConstruct
public void init()
{
System.out.println("Value: " + searchBean.getInput());
}
public SearchBean getSearchBean() {
return searchBean;
}
public void setSearchBean(SearchBean searchBean) {
this.searchBean = searchBean;
}
}
同时,还有 Facelet(search.xhtml):
<h:form id="formSearch">
<h:commandButton value="Search" action="#{searchBean.Submit}" />
</h:form>
更新: 我已经通过 ui:insert
组件将 search.xhtml
插入到 book.xhtml
中,如下所示:<h:form id="formBooks">
<ui:insert name="search">
<ui:include src="/templates/common/search.xhtml"/>
</ui:insert>
</h:form>
searchBean.getInput()
方法应该在表单提交后返回一个值。上述的注入方法是否可行?
@PostConstruct
时该属性为空)。 - BalusC