我有2個元素,香蕉和一個outputText,其中香蕉是一個自定義的JSF組件,在香蕉渲染器中,我想生成包含指定元素的HTML。自定義JSF組件渲染器:如何在另一個元素周圍渲染HTML
XHTML:
<h:outputText id="theApple" value="This is an Apple" />
.
.
.
<my:banana for="theApple" link="http://www.banana.com" />
bananaRenderer(封閉在錨鏈接的目標元素):
@Override
public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
ResponseWriter responseWriter = context.getResponseWriter();
Banana banana = Banana.class.cast(component);
responseWriter.startElement("a", null);
responseWriter.writeAttribute("id", banana.getClientId(context), null);
responseWriter.writeAttribute("href", banana.getLink(), null);
}
@Override
public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
ResponseWriter responseWriter = context.getResponseWriter();
Banana banana = Banana.class.cast(component);
responseWriter.endElement("a");
}
我想達到的目標:
<a href="http://www.banana.com">This is an Apple</a>
.
.
.
正如你可以看到我想要不是使用「for」屬性對香蕉組件進行編碼,而是使用「for」屬性對其進行編碼。 我看到的最接近的例子是PrimeFaces工具提示,但我無法完全理解它如何利用「for」屬性。 http://www.primefaces.org/showcase/ui/overlay/tooltip/tooltipOptions.xhtml#
如果有人可以指向我正確的方向,這將真的很感激。謝謝。
只要蘋果出現,您的解決方案就能正常運行。儘管如此,謝謝。 – Jacob
我已經修復了代碼以解決其他情況。儘管如此,謝謝。 – BalusC