2

ネストされたエンクロージャーを使用しているときにいくつかの問題に遭遇しました。それが私のコーディングのバグなのか、それとも私が試みている使用法がネイティブでサポートされていないのかを知りたいです。

次のようなもの:

<wicket:enclosure child="primary">
    <wicket:message key="primary.select">Primary Server</wicket:message>
    <select id="primary" wicket:id="primary"></select>
    <wicket:enclosure child="backup">
        <wicket:message key="backup.label"/>
        <span id="backup" wicket:id="backup"></span>
    </wicket:enclosure>
</wicket:enclosure>

問題は単純に、このような HTML を使用してよいかどうかです。可視性コントローラーの問題を探す前に、それを確認したいと思います。

しばらくの間、いくつかのドキュメントと検索エンジンを調べましたが、ネストされたエンクロージャがサポートされている、またはサポートされていないという言及は見つかりませんでした。

ありがとう!

4

1 に答える 1

1

コメントを見てなかったので、返信が遅くなり申し訳ありません。

<wicket:enclosure> タグのネストに関連する文書化された制限があるとは思いません。ただし、文書化されているタグには他にもいくつかの制限があります。

最初の制限は、Wicket タグ docに記載されています。

Ajax コールバック メソッドで子コンポーネントの可視性を変更しても、エンクロージャ全体には影響せず、子コンポーネント自体だけに影響します。これは、子コンポーネントのみが AjaxRequestTarget に追加されるためです。

囲いの直下に複数の改札コンポーネントがある場合は、囲いの子属性に ID を指定して、可視性を制御するコンポーネントを指定する必要があります。

次に、<wicket:enclosure> タグを使用して FormComponents を非表示にすることに関して、解決済みの問題があります。基本的に、タグによって非表示になっている FormComponent は、フォームの送信時に引き続き検証されます。ログを見ると、この問題に関する警告メッセージが表示されます。

注: Wicket の「文書化された」という用語は、ややあいまいです。質問に対する答えを見つけるには、さまざまなソースからの情報をつなぎ合わせることに慣れる必要があると思います。疑わしい場合は、ソース コードの javadoc またはインライン コメントを探してみてください。これらは通常、文書化された最良の情報源です。

于 2012-08-13T11:42:19.037 に答える