h:message を「span」要素ではなく「p」html 要素としてレンダリングするカスタム メッセージ レンダラーを作成したいと考えています。これは、次のメッセージ タグに関係します。
<h:message id="firstNameErrorMsg" for="firstname" class="error-msg" />
下にコードを書きましたが、それは空の 'p' 要素をレンダリングするだけです。元のコンポーネントからすべての属性とテキストをコピーして、ライターに書き込む必要があると思います。しかし、どこですべてを見つけることができるのかわかりません。タグを置き換えるだけでも大変な作業のようです。
h:message タグを「p」要素としてレンダリングするより良い方法はありますか?
コード:
@FacesRenderer(componentFamily = "javax.faces.Message", rendererType = "javax.faces.Message")
public class FoutmeldingRenderer extends Renderer {
@Override
public void encodeEnd(final FacesContext context, final UIComponent component) throws IOException {
ResponseWriter writer = context.getResponseWriter();
writer.startElement("p", component);
writer.endElement("p");
}
}