两个h:表单创建问题以显示h:消息

时间:2015-11-05 10:59:06

标签: jsf jsf-2

我在我的页面中使用了Richfaces弹出窗口,下面添加了相应的代码(它只有两个文本框和按钮的演示代码):

<?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">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions">

<f:metadata>
    <f:event listener="#{loginBean.verifyLogged}" type="preRenderView" />
    <f:event listener="#{cfsBean.fetchAllRFSList}" type="preRenderView" />
</f:metadata>

<h:body>

    <ui:composition template="../templates/home-template.xhtml">
        <ui:define name="content">
            <ui:include src="CfsGroupFeature-Add.xhtml">
                <ui:param name="parentBean" value="#{cfsBean}" />
            </ui:include>
            <h:form id="viewCfs">
                <rich:panel
                    style="border-width: 1px; border-color: #6B489D; padding:30px;width:145%; ">
                    <h:messages style="color:red;margin:8px;" />

                    <br />

                    <h:panelGrid columns="3">

        Enter your username :

        <h:inputText id="username" value="" size="20" required="true"
                            label="UserName">
                            <f:validateLength minimum="5" maximum="10" />
                        </h:inputText>

                        <h:message for="username" style="color:red" />

        Enter your age :
        <h:inputText id="age" value="" size="20" required="true" label="Age">
                            <f:validateLongRange for="age" minimum="1" maximum="200" />
                        </h:inputText>

                        <h:message for="age" style="color:red" />

                    </h:panelGrid>

                    <h:commandButton value="Submit" action="result" />

                </rich:panel>
            </h:form>
        </ui:define>
    </ui:composition>
</h:body>
</html>

正如您所看到的,我在此页面中包含了弹出窗口,但它不是当前页面h:form的一部分,因为我对两个窗口都有两个不同的h:form

但是如果我尝试从弹出窗口中删除h:form,我会遇到一个奇怪的问题:错误消息将显示在父页面上,否则它只显示在弹出页面中。

我在这里做错了什么?有人可以帮助我吗?

修改: -

popupWIndow代码

<?xml version='1.0' encoding='UTF-8' ?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions">


    <ui:define name="title">Page title</ui:define>



     <h:form>/** Some Components**/</h:form>

</ui:composition>

0 个答案:

没有答案