我有一个动态Facelets页面,需要在页面加载时显示来自数据库的信息。在流程的这一点上,还没有任何表单提交。我能找到的每个JSF示例都只在下一页显示具有动态结果的表单提交。
目前,我对数据库的每次调用都是在表单提交触发操作之后进行的。如果没有表单提交,这段代码应该放在哪里,以及如何触发它?一个代码片段真的能帮到我!
发布于 2008-10-31 09:49:09
您应该能够在托管bean的构造函数中(或在某个访问器中懒惰地)完成初始化工作。
发布于 2008-10-31 09:19:12
如果您使用的是Spring integration (另请参阅here ),这很容易。
在支持bean中,只需使用如下内容:
public class BackingBean implements InitializingBean
{
public void afterPropertiesSet()
{
loadInitialData();
}
}如果你没有和Spring集成,有两个选择:
在constructor;
faces-config.xml类中加载初始数据,您可以设置要注入的属性。属性保证按照在配置文件中指定的顺序进行设置。因此,只需创建一个虚拟属性,然后在该方法中加载您的默认数据。例如,创建一个方法public void setLoaded(boolean loaded) { loadInitialData(); },并在您的faces-config.xml中“加载”被设置为该支持bean的属性。希望这一切都清楚了!
发布于 2008-10-31 03:09:22
你写下(加上我的重点):
我对数据库进行的每一次调用都是在表单提交触发操作之后进行的。如果没有表单提交,这段代码应该放在哪里,以及如何触发它?一个代码片段真的能帮到我!
在我看来,您希望在提交表单之前从数据库中检索信息。
在我看来,您似乎想要发出一个Ajax调用来查询数据库。Ajax调用可以触发与表单submisson事件不同的事件。这可能需要使用Javascript而不是Faces框架。
https://stackoverflow.com/questions/252451
复制相似问题