如何在PrimeFaces dataTable列中使用换行符(漂亮打印)显示XML内容?
我的XML内容已经采用漂亮的打印格式,当从FacesConverter执行System.out.println时,我可以使用换行符看到它,在将字节呈现到表列之前将其转换为字符串.
这是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;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在上面做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>
Run Code Online (Sandbox Code Playgroud)
但是当数据显示在PF dataTable列上时,它显示为没有换行符的单行字符串 - 有没有办法在控制台上显示它?其他人如何在PF表中显示XML内容?
嗯,这看起来像诀窍:
.whiteSpaceClass{
white-space: pre-wrap;
}
Run Code Online (Sandbox Code Playgroud)
但是现在我不得不处理跨越一半页面的行,因为XML太大了.我想那句老话"小心你要求的东西"适用于这里...... :)
尽管如此,只显示前几行并且能够基于单击事件展开/折叠其余部分,或者甚至在双击单元格时将其显示在框中会很好 - 问题是,我不知道如何要做到这一点,或PF是否支持... :)
| 归档时间: |
|
| 查看次数: |
2358 次 |
| 最近记录: |