Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 我应该在PrettyFaces中使用f:event还是action元素?_Java_Jsf_Jakarta Ee_Prettyfaces - Fatal编程技术网

Java 我应该在PrettyFaces中使用f:event还是action元素?

Java 我应该在PrettyFaces中使用f:event还是action元素?,java,jsf,jakarta-ee,prettyfaces,Java,Jsf,Jakarta Ee,Prettyfaces,目前,我正在使用以下代码: public void init() { question = questionBean.findQuestion(questionParamId); } 它由以下命令调用: <f:metadata> <f:viewParam name="id" value="#{questionShowBackingBean.questionParamId}" /> <f:event type="preRenderView"

目前,我正在使用以下代码:

public void init() {
    question = questionBean.findQuestion(questionParamId);
}
它由以下命令调用:

<f:metadata>
    <f:viewParam name="id" value="#{questionShowBackingBean.questionParamId}" />
    <f:event type="preRenderView" listener="#{questionShowBackingBean.init}" />
</f:metadata>

因此,URL是:

现在我已经开始使用PrettyFaces,我在URL映射元素中看到了
元素,我想知道我是否可以编写
{questionShowBackingBean.init}

如果是这样的话,我应该删除元数据元素,还是应该改用它,因为将来它可能会从使用PrettyFaces改变?最后,
action
元素中的调用发生在哪里?它是在我现在的听众之前发生的吗?

标记看起来非常相似,但有一些可能会影响您的决定的巨大差异:

  • 允许您通过返回导航字符串来执行导航
  • 是本机JSF,如果您将来想切换URL重写工具,它可以让您保持可移植性
  • 允许您通过
    属性选择调用操作的阶段<代码>通常总是在RENDER\u响应期间同时调用,如果您在JSF操作方法中或在invoke\u应用程序阶段使用此信息,则在确实需要调用它之后调用
  • 默认情况下,
    s在恢复视图阶段后被调用,但正如我前面所说的,您可以自己控制它


    通常我更喜欢使用
    ,因为它不需要任何
    元素,而且它还允许我在任何生命周期处理发生之前导航(使事情更加安全)。

    那么您将如何绑定路径参数?直接在bean上设置它们?或者您可以将它们作为参数传递给action方法吗?我将按照您的建议,使用PrettyFaces注入绑定路径参数。