2013-04-29 62 views
2
<c:set var="product" value="#{productDAO.findByCode('code')}" /> 
#{product.name} 
#{product.name} 

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

+1

你不应该从视图中调用模型。 – 2013-04-29 21:04:00

+0

@Ravi这不是很有帮助。 – 2013-04-29 21:14:27

+0

模型无法启动DAO代码并将bean设置为View作用域的任何原因?我相信'#{product.name}'会正常工作。 – 2013-04-29 21:17:28

回答

5

您需要明确指定范围。

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

正确的方法,但是,是创建和使用请求范围管理的bean,并把这个逻辑在其@PostConstruct

+0

没有'范围'attr'产品'进入'Page'范围。如何将'scope'设置为'request'来改变当前行为?请帮助理解。 – 2013-05-01 14:49:57

+0

@Ravi:恩,它进入请求范围。 – BalusC 2013-05-01 15:11:43

+0

是的,我明白,但它如何防止OP的问题? ''我发现每次访问产品时都会调用数据库。“' – 2013-05-01 15:36:11