JSF和JPA最佳实践

Neo*_*s76 6 jsf jpa

我对JSF有一点经验,我想知道构建具有搜索功能的经典crud应用程序的最佳实践.特别是我对最后一个有疑问; 我有一个用户输入对象id的表单; 我用jpa和相关的facade会话bean映射了我的所有实体.但是在jsf页面中如何读取参数,调用finder方法然后显示对象属性?我应该使用一个获取对象的servlet并将其存储在请求范围内并访问该eith JSF EL吗?

先感谢您

Bal*_*usC 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>
Run Code Online (Sandbox Code Playgroud)

模型:

@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);
    }

}
Run Code Online (Sandbox Code Playgroud)