我正在尝试在Wicket DataView中显示json数据。如果我想用缩进显示json,我怎么能用java脚本实现呢?
我可以找到很多资源来格式化json,但他们使用的是java脚本。我们如何从dataview populateItem方法内部调用javascript函数来格式化json,如链接http://jsfiddle.net/unLSJ/
中所述HTML
<table>
<tr>
<th>Name</th>
<th>Value</th>
</tr>
<tr wicket:id="notificationDetails">
<td valign="top"><span wicket:id="name"></span></td>
<td valign="top"><span wicket:id="value"></span></td>
</tr>
</table>
我的Java:
dataView = new ListView<DataForTable>("notificationDetails",dataForTableList)
{
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<DataForTable> item)
{
item.setDefaultModel(new CompoundPropertyModel<DataForTable>(item.getModel()));
item.add(new Label("name"));
item.add(new Label("value"));
}
};
我还尝试使用Jackson对象映射器在添加到Label之前格式化json,但它没有帮助。检票口页面显示如下
mapper.defaultPrettyPrintingWriter().writeValueAsString(value);
wicket页面显示如下
{\r\n \"action\" : \"add\",\r\n \"schedule\"...
你能帮忙解决这个问题吗?
答案 0 :(得分:0)
您应该使用MultilineLabel而不是Label,以便将\n
替换为<br/>
。您还可以将\t
替换为
或任何其他空格字符。在这种情况下,请使用MultilineLabel#setEscapeModelStrings(false)
。