操作后对话框关闭

时间:2014-12-03 14:18:56

标签: jsf primefaces modal-dialog

每当我在模态对话框中执行一个动作时它就会关闭,但是执行了动作,因为当我再次打开对话框时,方法被执行了。我的代码在操作后保持对话框关闭有什么问题?

mantenimientoItems.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </h:head>
    <h:body>

        <h:form id="MantForm">
            <h:panelGrid columns="7">
                ...
                <p:inputText id="idClas"
                    value="#{MantenimientoItemsBean.itemsFiltrosVO.clasTitulo}"
                    update=":dialog3" onclick="busClas.show(); return false;">

                    <p:ajax event="click"
                    listener="#{MantenimientoItemsBean.ValidarTipoBuscador0}"/>
                </p:inputText>
                ...
        </h:form>

        <p:dialog id="dialog3" appendToBody="true" modal="true"
            widgetVar="busClas" dynamic="true" width="1400" height="850">
            <ui:include src="buscadorClasificador.xhtml" />
        </p:dialog>
    </h:body>
</ui:composition>

buscadorClasificador.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </h:head>

    <h:body>

        <h:form id="BClasForm">
            ...
            <tr>
                <td>
                      <p:commandButton value="Buscar" ajax="false"
                      action="#{MantenimientoItemsBean.BuscarClasificador()}"/>
                </td>
            </tr>
            ...
        </h:form>
    </h:body>
</ui:composition>

1 个答案:

答案 0 :(得分:0)

在命令按钮上设置属性ajax="false"时,它将提交其封闭表单,从而关闭对话框。如果你不这样做,你有两个选择,要么删除ajax="false",在这种情况下没有提交表单,要么添加一个属性type="button"代替type="button" type="submit",因此再次避免表单提交。