如何在 PrimeFaces 数据表列中显示带换行( pretty-print )的 XML 内容?
我的 XML 内容已经是 pretty-print 格式,当从 FacesConverter 执行 System.out.println 时,我可以看到它带有换行符,该 FacesConverter 在将字节转换为字符串之前将其呈现在表列上。
这是 FacesConverter 的代码:
@FacesConverter(value="xmlStream")
public class ByteConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
byte[] buffer = null;
try{
buffer = value.getBytes("UTF-8");
}catch(UnsupportedEncodingException e){
buffer = value.getBytes();
}
return buffer;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
String text = null;
if (value instanceof byte[]){
try{
text = new String((byte[])value, "UTF-8");
}catch(UnsupportedEncodingException e){
text = new String((byte[])value);
}
}
System.out.println("text=<" + text + ">");
return text;
}
}
这是我在上面执行 System.out.println 时在控制台中看到的内容:
<linkUp>
<ifName>eth1</ifName>
<linkProperty>
<name>1</name>
<flags>42</flags>
<extensions>
<name>foo</name>
<value>bar2</value>
</extensions>
</linkProperty>
<linkProperty>
<name>2</name>
<flags>4668</flags>
<extensions>
<name>foo</name>
<value>bar2</value>
</extensions>
</linkProperty>
</linkUp>
但是当数据显示在 PF dataTable 列上时,它显示为没有换行符的单行字符串 - 有没有办法像它在控制台上显示的那样显示它?其他人如何在 PF 表中显示 XML 内容?
嗯,看起来像这样:
.whiteSpaceClass{
white-space: pre-wrap;
}
但现在我不得不处理跨越一半页面的行,因为 XML 太大了。我猜这句老话“小心你的要求”在这里适用......:)
不过,如果只显示前几行并能够根据单击事件展开/折叠其余部分,甚至在双击单元格时将其显示在框中,那就太好了——问题是,我有不知道该怎么做,或者 PF 是否支持...:)
最佳答案
您可以使用可扩展行 来显示整个 XML。 查看 p:rowExpansion 的使用示例在陈列柜中。
关于java - 如何在 PrimeFaces 数据表列中显示带有换行符( pretty-print )的 XML 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11131505/