java - 如何在 PrimeFaces 数据表列中显示带有换行符( pretty-print )的 XML 内容?

标签 java jsf

如何在 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/

相关文章:

java - 无法在 Intellij IDEA 中解析带有 uri 的 taglib

java - 不同按钮需要动态验证?

jsf - 使用 JSF 进行页面导航

java - 在 Android 上基于 Web 的程序的设置页面中编辑 css

java - 其他库的 Scalaz 类型类实例汇总

java - Android 中的 AWS DynamoDB LoadTable fatal error ?

java - 尝试将 ObjectInputStream 的输出保存到文件时出现 IOException

jsf - 如何正确使用 isUserInRole(role)

java - jsf:请求的资源不可用

java - 为什么这个dataTable sortBy 函数不起作用?