如何以編程方式檢索單個UIComponent的HTML響應?JSF - 以編程方式獲取UIComponent的HTML
0
A
回答
0
在某種程度上只需要一個簡單的文本Omnifaces outputFormat
可以將其輸出保存到var
。
0
我想你已經在JSF請求。
在這種情況下,你可以自定義響應作家設置爲當前的FacesContext,例如一個新的com.sun.faces.renderkit.html_basic.HtmlResponseWriter
,之後呈現組件:
public String createHtml(UIComponent component) {
FacesContext context = FacesContext.getCurrentInstance();
ResponseWriter oldWriter = context.getResponseWriter();
try {
StringWriter buffer = new StringWriter();
context.setResponseWriter(new HtmlResponseWriter(buffer, "text/html", "UTF-8"));
component.encodeAll(context);
context.getResponseWriter().close();
return buffer.toString();
} finally {
context.setResponseWriter(oldWriter);
}
}
它注意到重要的是您的組件或它的一個子絕不要使用在頁面上另一個地方定義的變量,因爲如果您只渲染單個組件,則這些變量未定義。
如果你想初始化所有變量,以及,你可以打印喜歡的響應AJAX請求(部分緩解)的HTML:
public String createHtml(UIComponent component) {
FacesContext context = FacesContext.getCurrentInstance();
ResponseWriter oldWriter = context.getResponseWriter();
try {
StringWriter buffer = new StringWriter();
context.setResponseWriter(new HtmlResponseWriter(buffer, "text/html", "UTF-8"));
final VisitContext vc = VisitContext.createVisitContext(context,
Collections.singleton(component.getClientId()),
Collections.<VisitHint> emptySet());
context.getViewRoot().visitTree(vc, new VisitCallback() {
public VisitResult visit(final VisitContext ctx, final UIComponent comp) {
try {
comp.encodeAll(ctx.getFacesContext());
} catch (final IOException e) {
throw new IllegalStateException(e);
}
return VisitResult.COMPLETE;
}
});
context.getResponseWriter().close();
return buffer.toString();
} finally {
context.setResponseWriter(oldWriter);
}
}
相關問題
- 1. 以編程方式在bean的構造函數中獲取JSF視圖的UIComponent
- 2. JSF 2.0:添加UIComponent當編程
- 3. 如何以編程方式在JSF中獲取資源圖?
- 4. JSF/HTML - 以編程方式向網頁添加Java小程序
- 5. 以編程方式獲取iOS7的IMEI
- 6. JSF從UIComponent
- 7. JSF以編程方式添加資源
- 8. JSF以編程方式呈現響應
- 9. 如何以編程方式將AjaxBehavior添加到具有primefaces的UIComponent
- 10. 如何以編程方式獲取layout_weight?
- 11. 以編程方式獲取IIS版本
- 12. 以編程方式獲取Outlook信息
- 13. 以編程方式從GitHub獲取
- 14. 以編程方式獲取UIButton
- 15. 以編程方式獲取.ASPXAUTH cookie值
- 16. 以編程方式獲取表控件
- 17. 以編程方式從View獲取UIImageView。
- 18. 以編程方式獲取SignalR版本
- 19. 以編程方式獲取ssl證書
- 20. 以編程方式獲取Maven構件
- 21. ASP.NET以編程方式獲取UserControl VirtualPath
- 22. 以編程方式獲取框架ID
- 23. 以編程方式獲取C:\ Users
- 24. 使用HtmlUnit以編程方式從HTML獲取列表
- 25. asp.net MVC在視圖中以編程方式獲取HTML
- 26. 如何以編程方式獲取jsf或primeface數據表的所有行
- 27. 以編程方式訪問樣式以獲取值
- 28. 如何以編程方式獲取Windows進程的線程數?
- 29. 獲取UIComponent的tabindex值
- 30. 以編程方式讀取logcat以獲得應用程序
你是什麼意思「的HTML響應」呢?你的意思是由組件生成的標記? – kolossus 2014-12-05 21:41:37
jep究竟是發送給瀏覽器的最終HTML – djmj 2014-12-06 01:19:47