我对JSF有一点经验,我想知道构建具有搜索功能的经典crud应用程序的最佳实践。特别是我对最后一个有疑问;我有一个用户输入对象id的表单;我用jpa和相关的facade会话bean映射了我的所有实体。但是在jsf页面中如何读取参数,调用finder方法然后显示对象属性? 我应该使用一个获取对象的servlet并将其存储在请求范围内并访问该eith JSF EL吗?
提前谢谢
答案 0 :(得分:4)
您不需要servlet。只需在托管bean中通过@EJB
注入会话门户/ EJB,然后在bean操作方法中调用它,然后在结果页面中以通常的JSF / EL方式显示它。
查看:
<h:form>
<h:inputText value="#{bean.search}" />
<h:commandButton value="search" action="#{bean.submit}" />
</h:form>
<h:panelGroup rendered="#{not empty bean.result}">
<p>#{bean.result.someProperty}</p>
</h:panelGroup>
型号:
@ManagedBean
@RequestScoped
public class Bean {
private String search; // +getter +setter
private Data result; // +getter
@EJB
private DataFacade dataFacade;
public void submit() {
result = dataFacade.find(search);
}
}