繁体   English   中英

JSF和Facelets流

[英]JSF & Facelets Flow

我有一个动态的Facelets页面,该页面在加载时需要显示数据库中的信息。 在流程的这一点上,还没有任何表单提交。 我可以找到的每个JSF示例仅在下一页上显示具有动态结果的表单提交。

当前,我对数据库的每次调用都是在表单提交触发操作后进行的。 如果没有表单提交,此代码应该放在哪里,如何触发它? 代码片段确实可以帮助我!

您应该能够在托管bean的构造函数中(或在您的访问器之一中)进行初始化工作。

如果您使用的是Spring集成 (另请参阅此处 ),则很容易。

在您的支持bean中,只需使用类似以下内容的东西:

public class BackingBean implements InitializingBean
{
    public void afterPropertiesSet()
    {
        loadInitialData();
    }
}

如果您不与Spring集成,则有两种选择:

  1. 将初始数据加载到类构造函数中;
  2. faces-config.xml ,您可以设置要注入的属性。 确保按在配置文件中指定的顺序设置属性。 因此,只需创建一个虚拟属性,然后在该方法内加载默认数据。 即创建一个方法public void setLoaded(boolean loaded) { loadInitialData(); } public void setLoaded(boolean loaded) { loadInitialData(); } ,并在您的faces-config.xml中将该“加载”设置为该支持bean的属性。

希望一切都清楚!

您写(加了我的重点):

当前,我对数据库的每次调用都是在表单提交触发操作后进行的。 如果没有表单提交 ,此代码应放在哪里,如何触发它? 代码片段确实可以帮助我!

在我看来,您想提交表单之前从数据库中检索信息。

在我看来,您想进行Ajax调用来查询数据库。 Ajax调用可以引发与表单提交事件不同的事件。 这可能需要使用Javascript而非Faces框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM