Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF&;小脸流_Java_Ajax_Jsf_Jakarta Ee_Facelets - Fatal编程技术网

Java JSF&;小脸流

Java JSF&;小脸流,java,ajax,jsf,jakarta-ee,facelets,Java,Ajax,Jsf,Jakarta Ee,Facelets,我有一个动态Facelets页面,当页面加载时需要显示来自数据库的信息。在流程的这一点上,还没有任何表单提交。我能找到的每个JSF示例都只在下一页显示一个表单提交和动态结果 我对数据库的每次调用当前都是在表单提交触发操作之后进行的。如果没有表单提交,该代码应该放在哪里?如何触发它?一段代码片段真的能帮我解决这个问题 你写(加上我的重点): 我对数据库的每次调用当前都是在一个操作之后进行的 已由表单提交触发。这个代码应该放在哪里 如果没有表单提交,我如何触发它?A. 代码片段真的能帮我解决问题 在

我有一个动态Facelets页面,当页面加载时需要显示来自数据库的信息。在流程的这一点上,还没有任何表单提交。我能找到的每个JSF示例都只在下一页显示一个表单提交和动态结果

我对数据库的每次调用当前都是在表单提交触发操作之后进行的。如果没有表单提交,该代码应该放在哪里?如何触发它?一段代码片段真的能帮我解决这个问题

你写(加上我的重点):

我对数据库的每次调用当前都是在一个操作之后进行的 已由表单提交触发。这个代码应该放在哪里 如果没有表单提交,我如何触发它?A. 代码片段真的能帮我解决问题

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

在我看来,您似乎想要进行Ajax调用来查询数据库。Ajax调用可以在与表单submisson事件不同的事件上触发。这可能需要使用Javascript而不是Faces框架。

如果您使用(另请参阅),这很容易

在支持bean中,只需使用以下内容:

public class BackingBean implements InitializingBean
{
    public void afterPropertiesSet()
    {
        loadInitialData();
    }
}
如果不与Spring集成,有两个选项:

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

  • 希望一切都清楚

    您应该能够在托管bean的构造函数中(或者懒洋洋地在其中一个访问器中)完成初始化工作。

    对不起,我知道您为什么会这样想。我的错。我希望在页面加载时设置这些值,而不需要任何用户交互。你是说在用户打开表单后分阶段加载,对吗?为什么导致表单加载的事件不能启动额外的ajax调用?