5

UIComponent と UIOutput を拡張するタグ クラスがあります。このクラスには、encodeBegin と encodeEnd があり、 contextWriter を使用して、 writer.startElement("div", myComponent) などを使用して必要な HTML タグを出力できます。

私の問題は、たとえば、writer.startElement を使用する代わりに a を挿入する必要があることです。getChildren().add(HtmlCommandButton button = new HtmlCommandButton()); を実行することで、これを実行できます。しかし、そのようにすると、write.startElementでできるように、コンポーネントを表示したい場所にコンポーネントを出力できないようです。

自分のタグライブラリでリッチフェイスタグ、JSFタグなどを利用する方法について、誰かが良い解決策を持っていますか? 要するに、私が本当にやりたいことは、encodeBegin 内にあります。

writer.startElement("a4j:commandButton", myComponent);
writer.writeAttribite("action", "#{Handler.myAction}", null);
writer.endElement("a4j:commandButton");

事前に感謝

4

2 に答える 2

1

本当の答えではなく、推測ですが、facelets コントロールの 1 つを拡張できますか?

または、facelets を直接使用することもできます。これは、私自身は使用していませんが、まさにあなたが本当に必要としているもののようです。または、HTML を表示したい場所に UIOutput コントロールを追加し、それぞれの値を表示したい HTML に設定することもできます - これはまさに f:verbatim がフードの下で行っていることです。 )

于 2009-03-17T14:07:08.500 に答える