我正在尝试在我的一个 JSF 页面上使用 javascript。不幸的是
<h:body onload="init('#{formBean.arrayAsString}')">
根本不被调用。我发现如果我在导航到页面的导航案例中添加 /redirect 标记,该功能将加载。不幸的是,这会导致另一个问题,因为导航时我还传递了重要的 f:param 以便 formBean 可以读取它。如果我使用 /redirect 标记,则参数值不再可供读取。
如何在不使用重定向标签的情况下加载 javascript init 函数?或者也许我可以通过重定向以某种方式传递 f:param 值,但据我所知这是不可能的......
我在下面发布导航方法:
第一个 .xhtml 页面:
<h:selectOneMenu id="selectMenu" value="#{indexBean.name_id}">
<f:selectItems value="#{indexBean.myModelValues}" />
<f:ajax event="valueChange" render="button" execute="@this"/>
</h:selectOneMenu>
<h:commandButton id="button" value="Go to form Browse" action="form">
<f:param name="name" value="#{indexBean.name_id}" />
</h:commandButton>
请记住,此按钮也由 ah:selectOneMenu 的 ajax 事件重新呈现,以传递选定的值。
和导航案例:
<navigation-rule>
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<from-outcome>
form
</from-outcome>
<to-view-id>
/form.xhtml
</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
重定向标签是一个启用 JavaScript 初始化功能的新插件。