gpt4 book ai didi

jsf - 有没有办法从UIComponent对象获取生成的HTML作为字符串?

转载 作者:行者123 更新时间:2023-12-04 17:50:47 24 4
gpt4 key购买 nike

我有一个UIComponent对象。我想在运行时获取此组件生成的HTML代码,以便对其进行分析。

有没有办法做到这一点?

我正在尝试使用JsfUnit创建自动化测试。我可以从测试方法中获取UICompoment对象。但是,我找不到一种方法来检查由组件生成的HTML。

最佳答案

只需执行JSF幕后的操作即可:调用 UIComponent#encodeAll() 。要捕获输出,请通过 FacesContext#setResponseWriter() 将响应编写器设置为本地缓冲区。

例如。 (假设您处于调用应用程序阶段;当处于渲染响应阶段时,这需要以其他方式完成):

FacesContext context = FacesContext.getCurrentInstance();
ResponseWriter originalWriter = context.getResponseWriter();
StringWriter writer = new StringWriter();

try {
context.setResponseWriter(context.getRenderKit().createResponseWriter(writer, "text/html", "UTF-8"));
component.encodeAll(context);
} finally {
if (originalWriter != null) {
context.setResponseWriter(originalWriter);
}
}

String output = writer.toString();
// ...

关于jsf - 有没有办法从UIComponent对象获取生成的HTML作为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16965229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com