0

私はJSFが初めてで、この奇妙な問題に直面しています。ばかげた間違いだと確信していますが、それを理解できないようです。基本的に、挿入rich:calendarするui:compositionと表示されません。私の(簡略化された)テンプレートは次のように定義されています

<?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:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title></title>
    </h:head>
    <h:body>
        <ui:insert name="content"/>
        <ui:debug/>
    </h:body>
</html>

私のインデックスページ

<?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:rich="http://richfaces.org/rich">
    <head>
        <title></title>
    </head>
    <body>
        <ui:composition template="/indexLayout.xhtml">
            <h:outputScript library="javascript" name="common.js" target="head"/>
            <ui:define name="content">
                <h:form> 
                    <h:panelGrid columns="2">
                        From
                        <rich:calendar id="pickup" onchange="#{rich:component('return')}.setValue(#{rich:component('pickup')}.getValue())" 
                                       dayDisableFunction="disablementFunction" datePattern="MMM d, yyyy" value="#{reservation.pickUp}" />

                        To
                        <rich:calendar id="return" dayDisableFunction="disablementFunction" datePattern="MMM d, yyyy" />

                    </h:panelGrid>
                    <h:commandButton value="Redisplay" />
                </h:form>
            </ui:define>
        </ui:composition>
    </body>
</html>

なしでインデックスページを定義すると、問題なくui:composition表示されます。助けてください。ありがとうございました。

4

1 に答える 1

2

を使用しているときは、テンプレート内のすべての内部がそれぞれの に置き換えられるため、<h:outputScript /> 内部に配置する必要があります。外側はすべてレンダリングされません。<ui:define></ui:define><ui:composition /><ui:insert /><ui:define /><ui:define />

あなたの場合、JavaScript 関数disablementFunctionが読み込まれてrich:calendarいないため、正しく動作しません。

インデックス ページは次のようになります。

<ui:composition template="/indexLayout.xhtml">
    <ui:define name="content">
        <h:outputScript library="javascript" name="common.js" target="head"/>

        <h:form>
            <h:panelGrid columns="2">
                From

                <rich:calendar id="pickup" onchange="#{rich:component('return')}.setValue(#{rich:component('pickup')}.getValue())"  dayDisableFunction="disablementFunction" datePattern="MMM d, yyyy" value="#{reservation.pickUp}" />

                To

                <rich:calendar id="return" dayDisableFunction="disablementFunction" datePattern="MMM d, yyyy" />
            </h:panelGrid>
            <h:commandButton value="Redisplay" />
        </h:form>
    </ui:define>
</ui:composition>

より詳しい情報 :

于 2013-06-02T05:53:53.207 に答える