0

私の問題は次のとおりです。Webアプリケーションのレイアウトに使用するtemplate.xhtmlがあります

<div id="header">
   <ui:insert name="header">
        [Top Bar content will be inserted here]
     </ui:insert>
    </div>



    <div id="main">
        <ui:insert name="main">
            [Nav Bar Left content will be inserted here]
         </ui:insert>
    </div>

    <div id="button">
         <ui:insert name="button">
            [Nav Bar Left content will be inserted here]
         </ui:insert>
    </div>

それから私はaddOrder.xhtmlを持っています

<!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: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"
template="/WEB-INF/template/popUpInsert.xhtml">

<ui:define name="header">
  <h:outputLabel value="Status" />
  <rich:inplaceInput value="#{ordineController.orderToSave.status}"   />
  <h:outputLabel value="Code" />
  <rich:inplaceInput value="#{ordineController.orderToSave.code}"  />
</ui:define>
<ui:define name="main">
  Here there is a data table that contains lines of the order
</ui:define>
<ui:define name="button">
 <h:form>
 <a4j:commandButton value="Save" action="#{ordineController.addOrder()}" />
 <h:form>
</ui:define>

しかし、ステータスとコードの両方がnullである注文を保存しようとすると、スコープをボタン保存(execute = "@all")に変更しようとしますが、何もしません

どうしたの?

4

2 に答える 2

0

これをページに追加する<h:messages styleClass="message" />と、JSF からの警告がさらに表示されます。この場合、JSF はフォーム内に必要な要素を認識しているため、フォームが見つからないという警告が表示されます。最終的にはすべて HTML と JavaScript であるため、送信する場合はフォーム内に入力する必要があります。

于 2013-01-22T09:14:49.783 に答える
0

関連する入力コンポーネントをコマンド コンポーネントと同じ形式で配置する必要があります。コマンド コンポーネントと同じ形式でない入力コンポーネントは、送信時に単純に無視されます。これは HTML の制限であり、JSF の制限ではないことに注意してください。

したがって、これはあなたのために行う必要があります:

<h:form>
    <div id="header">
        <ui:insert name="header">
            [Top Bar content will be inserted here]
        </ui:insert>
    </div>

    <div id="main">
        <ui:insert name="main">
            [Nav Bar Left content will be inserted here]
        </ui:insert>
    </div>

    <div id="button">
        <ui:insert name="button">
            [Nav Bar Left content will be inserted here]
        </ui:insert>
    </div>
</h:form>

と:

<ui:define name="header">
    <h:outputLabel value="Status" />
    <rich:inplaceInput value="#{ordineController.orderToSave.status}" />
    <h:outputLabel value="Code" />
    <rich:inplaceInput value="#{ordineController.orderToSave.code}"  />
</ui:define>
<ui:define name="main">
    Here there is a data table that contains lines of the order
</ui:define>
<ui:define name="button">
    <a4j:commandButton value="Save" action="#{ordineController.addOrder()}" />
</ui:define>

この方法で「神」の形を作成しないように注意してください。

于 2013-01-22T12:36:53.493 に答える