2015-04-24 3 views
0

Я пытаюсь отобразить данные json в Wicket DataView. Если я хочу отобразить json с отступом, как я могу добиться этого, используя java-скрипт?Как форматировать json в wicket dataview с помощью javascript

Я мог бы найти много источников для форматирования json, но они используют скрипт java. Как мы можем вызвать функцию JavaScript внутри метода DataView populateItem форматировать 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 для форматирования json перед добавлением в Label, но это не помогает. Калитка страница отображается как этот

mapper.defaultPrettyPrintingWriter().writeValueAsString(value); 

калитка страница отображает как этот

{\r\n \"action\" : \"add\",\r\n \"schedule\"... 

Можете ли вы помочь решить эту проблему?

ответ

0

Вы должны использовать MultilineLabel вместо Label, поэтому \n заменяется на <br/>. Вы также можете заменить \t на &nbsp; или любой другой символ пробела. В этом случае используйте MultilineLabel#setEscapeModelStrings(false).

Смежные вопросы