2
html body
タグ(セレンテスト用)のid
属性を設定する必要があります。しかし、JSF 2 body
タグ(<h:body>
)にはid
属性がありません。JSF 2のbody id属性を明確にする方法は?
したがって、JSF 2のhtml本文にid
属性を指定するにはどうすればよいですか。
html body
タグ(セレンテスト用)のid
属性を設定する必要があります。しかし、JSF 2 body
タグ(<h:body>
)にはid
属性がありません。JSF 2のbody id属性を明確にする方法は?
したがって、JSF 2のhtml本文にid
属性を指定するにはどうすればよいですか。
<h:body>
実際にはサポートされていません(驚いたことに、HTMLでも完全に有効です)。私はJSFの人にissue 2409と報告しました。ところで
BodyRenderer
を拡張することによってこの問題を解決できます、
package com.example;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import com.sun.faces.renderkit.html_basic.BodyRenderer;
public class BodyWithIdRenderer extends BodyRenderer {
@Override
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
super.encodeBegin(context, component);
if (component.getId() != null) {
context.getResponseWriter().writeAttribute("id", component.getClientId(context), "id");
}
}
}
はそれを実行するために取得するにはfaces-config.xml
に次のように(それを登録していません、 @FacesRenderer
注釈マジックは標準レンダラーのオーバーライドに関しては機能しません)。
<render-kit>
<renderer>
<component-family>javax.faces.Output</component-family>
<renderer-type>javax.faces.Body</renderer-type>
<renderer-class>com.example.BodyWithIdRenderer</renderer-class>
</renderer>
</render-kit>
こんにちは、魅力のように動作しているようですが、私はMVNは日食の外をインストールしようとすると、私は次のエラーを取得する:パッケージcom.sun.faces.renderkit.html_basicは存在しません。何か案が? –
@Alex:申し訳ありませんが、Mavenは私を超えており、これは質問されている具体的な質問に集中しています。 「Ask Question」ボタンを押すと、新しい質問が表示されます。 – BalusC
@Alex:ああ、2409号はMojarra 2.1.8以降、リンクされたチケットごとに修正されていることに注意してください。あなたは ''を使うためにそれをアップグレードすることもできます:) –
BalusC