我想创建一个自定义消息渲染器来将 h:message 渲染为“p”html 元素而不是“span”元素。它涉及以下消息标签:
<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");
}
}