Java JSF1.1中的面板弹出窗口

Java JSF1.1中的面板弹出窗口,java,jsf,panel,Java,Jsf,Panel,在JSF 1.1中是否可能有面板弹出窗口?我想显示一个弹出窗口,当我点击编辑按钮,然后想有几个组件在面板弹出窗口 我没有使用任何其他JSF,比如icefaces或richfaces,只是简单的JSF1.1 任何帮助都是值得赞赏的 谢谢是的,绝对有可能。只需引入一些JavaScript和/或CSS的好镜头,即可显示/隐藏弹出窗口并设置其样式。这也是像RichFaces这样的普通组件库所做的,唯一的区别是它都包装在一个简单的JSF组件中 在最简单的情况下,单击按钮/链接即可使用JSwindow.op

在JSF 1.1中是否可能有面板弹出窗口?我想显示一个弹出窗口,当我点击编辑按钮,然后想有几个组件在面板弹出窗口

我没有使用任何其他JSF,比如icefaces或richfaces,只是简单的JSF1.1

任何帮助都是值得赞赏的


谢谢

是的,绝对有可能。只需引入一些JavaScript和/或CSS的好镜头,即可显示/隐藏弹出窗口并设置其样式。这也是像RichFaces这样的普通组件库所做的,唯一的区别是它都包装在一个简单的JSF组件中

在最简单的情况下,单击按钮/链接即可使用JS
window.open()


window.open()
允许对窗口进行细粒度定制,例如显示/隐藏的大小和浏览器栏。请阅读本手册以了解它们。必须返回
false
,以防止按钮不必要地提交表单

然后,在与
edit.jsf
相关联的支持bean的构造函数中,您可以通过作为请求参数传递的
id
获取该项

private Item item;

public EditItemBean() {
    String id = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
    this.item = someItemService.find(Long.valueOf(id));
}
令人讨厌,但JSF1.1没有提供JSF1.2支持的
@PostConstruct
注释或JSF2.0支持的
标记

最后,在
edit.jsf
中,需要引入一些有条件呈现的JavaScript片段,重新加载父窗口(以便重新显示编辑的数据)并关闭弹出窗口


...
window.opener.location.reload(true);
window.close();
保存成功时,在操作方法中设置
success
布尔值

public void save() {
    // ...

    this.success = true;
}

也存在使用所谓的“覆盖窗口”对话框的解决方案,该对话框基本上是
,使用CSS定位
位置:固定
并以透明背景覆盖整个浏览器窗口,然后在其中另一个
居中并包含真实表单。然而,这需要更多的JS/CSS。这也是一般JSF组件库和JavaScript框架/插件(如jQuery或YUI)的基本功能。让它与JSF无缝地协同工作只是更为棘手,因为当弹出窗体出现验证错误时,您当然希望重新显示弹出窗口,诸如此类。如果您使用的是支持ajax的JSF实现/库,那么就容易多了。

感谢您的详细回复。有没有可能像这样做一些输入。。。保存/取消按钮对不起,我不做冰面。另外,IceFaces不是“普通的JSF 1.1”。当提到IceFaces时,我有一个问题,你更喜欢JSF、IceFaces、richfaces、apache faces还是其他什么?就od可靠性和更少的bug数量而言-@BalusC无论在
中是什么,它都没有。这只是你对客户端发生的事情的误解。