JSF c :set evaluation

标签 jsf jsf-2 jstl

<c:set var="product" value="#{productDAO.findByCode('code')}"  />
#{product.name}
#{product.name}

我想从数据库中检索一个对象并将其存储到一个变量中一次。 但是,我发现每次访问产品时都会调用数据库。 在上面的示例中,有两个对数据库的调用。

最佳答案

您需要明确指定范围。

<c:set var="product" value="#{productDAO.findByCode('code')}" scope="request" />

然而,正确的方法是创建和使用一个请求范围内的托管 bean,并将此逻辑放在它的 @PostConstruct 中。

关于JSF c :set evaluation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287972/

相关文章:

java - 如何解决javax.el.MethodNotFoundException

java - JSF 看不到带注释的 Bean

jsf - session 过期后 Spring Security 登录重定向到最后一个 JSF ajax 请求并以纯文本形式显示其 <partial-response> XML 响应

javascript - 如何将多个html表格和多个d3生成的图表导出到一个pdf中

java - 我应该选择哪个框架——Seam、Wicket、JSF 或 GWT?

html - 如何将 primefaces DefaultMenuModel 推到 Accordion 面板之前?

jsf - 如何使 Primefaces selectonemenu 处于禁用状态?

jsf-2 - 使用 ui :composition 时如何更改页面的头部元素

java - 带有多个参数的 Spring 消息标签

java - Displaytag 库 - 检测分页请求