从嵌入JSF 2.0应用与导航情况下的问题(Problems with navigation cas

2019-10-16 18:21发布

我工作的一个JSF的电子表格应用程序。 此应用程序需要被嵌入到其他网站(一个用JSP)。 我可以嵌入这个问题的唯一方法是通过在jQuery的文件准备阶段。

我已经得到了我所需要的嵌入网页,一切都显示为预期,但有一个问题。

在我的新形式/编辑形式的网页我有一个提交按钮,更新表单或创建在服务器端一个新的,然后导航到屏幕成功或失败屏幕的动作完成时。

当这个页面是嵌入式的,这个按钮仍然执行服务器(真棒!!)的作用,但是,正如所料,页面重定向到成功画面。 我希望做的就是保持“父”屏幕上,只是与成功页/失败页面替换嵌入页面。

我想我可以去了解这个方法是以某种方式拦截从JSF导航事件,并从该事件重新加载页面嵌入。 这里的关键是提交后不能离开父页面。

我在Tomcat 6运行JSF2.0(implement执行的Apache)和jQuery的版本是1.3。

我希望这是明确的..让我知道,如果你们需要任何更多的信息。

谢谢!

Answer 1:

当这个页面是嵌入式的,这个按钮仍然执行服务器(真棒!!)的作用,但是,正如所料,页面重定向到成功画面。 我希望做的就是保持“父”屏幕上,只是与成功页/失败页面替换嵌入页面。

只是返回nullvoid ,并有条件地呈现内容。

因此,这样

public void submit() {
    results = processAndGetIt();
}

如与

<h:form>
    ...
    <h:commandButton value="Submit" action="#{bean.submit}">
        <f:ajax execute="@form" render=":results" />
    </h:commandButton>
</h:form>

<h:panelGroup id="results">
    <h:panelGroup rendered="#{not empty bean.results}">
        Results have been retrieved: #{bean.results}.
    </h:panelGroup>
</h:panelGroup>

请注意,我说<f:ajax>为更好的用户体验。



文章来源: Problems with navigation cases from an embedded JSF 2.0 application