3

Primefaces Extension の Dynaform について正確に Dynamic とは何かを知っている人はいますか?動的フォーム exampleについて動的なものは何もないようです。私が知る限り、これは固定レイアウトと固定入力コンポーネントを備えた単なるフォームです。フロントページの声明を考えると、私が期待したものではありません:        

通常、行数/列数、要素の位置などがわかっている場合、h:panelGrid または p:panelGrid によって非常に簡単なフォームを作成できます。これは静的フォームにも当てはまります。ただし、フォームが実行時に動的に記述されている場合、h:panelGrid または p:panelGrid を使用することはできません。たとえば、フォームの定義全体がデータベースまたは XML ファイルに配置されている場合。

DynaForm は、モデルごとにラベル、入力、選択、およびその他の要素を含む動的なフォームを構築することを可能にします。その他の機能強化には、拡張可能な拡張ビュー エリア (グリッド)、autoSubmit 機能、ウィジェットのクライアント側 API、さまざまなファセットがあります。サポートされているファセット

 

4

2 に答える 2

5

私はこのコンポーネントの作成者です。なぜレイアウトが固定されていると思いますか?固定ではなく、Java でレイアウトを定義します。Java コントロール/ラベルで定義されたフォーム要素との間のマッピングは、"type" 属性によって行われます。もちろん、考えられるすべてのフォーム要素はページ上に配置する必要があります。Java で作成するのではなく、XHTML でタグとして記述する方が簡単だからです。Java で SelectOneMenu を作成し、SelectItems、Ajax ビヘイビアー、Action / ActionListener、その他の多くの属性を使用すると想像してください。p:treeNode や TreeNode のように、1-N マッピングを指定する方が簡単です。これは同じです - pe:dynaFormControl と DynaFormControl があります。すべてのコード サンプルを参照してください。

ありがとう。オレグ。

PS私の最後のブログ投稿は、このコンポーネントに関するものです。

于 2012-06-18T10:19:35.437 に答える
4

Primefaces 拡張機能の作成者の 1 人が、ブログhttp://ovaraksin.blogspot.hu/2012/06/dynamic-forms-jsf-world-was-long.htmlでもう少し詳しく説明しています。

重要な部分は次のとおりです。

子タグ pe:dynaFormControl は、「type」属性によって Java コントロールで作成されたものと一致します。これは通常、「1 対多」の関係です。

xhtml ページでレイアウトを定義するのではなく、Java コードで参照するカスタム コンポーネントを作成するだけです。

basicUsageの例では、次のことがわかります。

<pe:dynaFormControl type="calendar" for="cal">
    <p:calendar id="cal" value="#{data.value}" />
</pe:dynaFormControl>

これにより、 を使用して実装されるカレンダー コントロール タイプが作成されp:calendarます。バッキング Bean で参照できます。

DynaFormControl control = row.addControl(property, "calendar", 1, 1); 
于 2012-06-18T10:21:40.393 に答える