Servlets 使用自定义组件在JSF中创建弹出窗口

Servlets 使用自定义组件在JSF中创建弹出窗口,servlets,jsf-2,popup,dhtml,Servlets,Jsf 2,Popup,Dhtml,如果我在JSF页面上创建弹出窗口,我需要使用一个自定义组件。 它似乎使用了DHTML技术和CSS隐藏和显示,并在当前页面上创建了一个覆盖,而不是一个合适的窗口 在我的例子中,它是用来显示一个由servlet提供服务的图像的 我尝试了几种方法,结果如下: 1如果我使用弹出窗口并显示图像,则会消失,因为commandButton会刷新页面 2如果我将commandButton的类型更改为button,则永远不会调用action字段中的bean.DisplayImages,servlet也不会为该图像

如果我在JSF页面上创建弹出窗口,我需要使用一个自定义组件。 它似乎使用了DHTML技术和CSS隐藏和显示,并在当前页面上创建了一个覆盖,而不是一个合适的窗口

在我的例子中,它是用来显示一个由servlet提供服务的图像的

我尝试了几种方法,结果如下: 1如果我使用弹出窗口并显示图像,则会消失,因为commandButton会刷新页面

2如果我将commandButton的类型更改为button,则永远不会调用action字段中的bean.DisplayImages,servlet也不会为该图像提供服务

3我还尝试将bean.displayImage放在actionListener字段中,并通过添加ActionEvent e作为参数来修改该方法,以防止页面刷新,但其行为与2相同

我没什么主意了,有人能帮我吗

提前感谢,,
Michael

功能需求并不完全清楚,但是您可以使用将其作为ajax请求,并呈现页面的某些部分

比如:

<h:commandButton value="Show popup" onclick="mypopup.show()">
    <f:ajax listener="#{bean.displayImage}" render="image" />
</h:commandButton>
<h:panelGroup id="image">
    <h:graphicImage value="imageURL" rendered="#{bean.renderImage}" />
</h:panelGroup>

{bean.displayImage}的用途是什么?它到底在做什么,而在视图端是做不到的?它是一个控制器请求作用域,它在binary64中获取一个映像,并将其放入会话映射中。然后servlet使用它来呈现jpg图像。在视图中,我显示了servletWell,我的答案仍然适用。我也不确定我是否可以使用ajax,让我在周一检查一下:-