Я использую struts 2 компонент jquery plugin select.Struts 2 jquery sj: select and json result
Действие:
SampleAction {
private List<SampleVO> samples; //With setters and getters
private List<AnotherVO> anotherList; //With setters and getters
private String anString; //With setters and getters
@Action(value = "/loadSelect", results = {
@Result(name = "success", type = "json")})
public String loadSomeSamples() {
samples = new ArrayList<SampleVO>();
//Put some object in samples.
return SUCCESS;
}
}
СПЯ является
<sj:select list="samples" />
Проблема заключается в том, что плагин будет JSON сериализации все свойства в действии (anotherList
, anString
и т.д ...), а ниже
{
"samples": {
"0": {"property":"a"},
"1": {"property":"b"},
"2": {"property":"c"}
},
"anString": "hello",
"anotherList": {
"0": {"prop1":"a","prop2":"b"},
"1": {"prop1":"c","prop2":"d"}
}
}
Если изменить JSON root
ра rameter to samples
, то js:select
не будет работать, поскольку он не может найти список с именем samples
в возвращенном json. Возвращенный json:
{
"0": {"property":"a"},
"1": {"property":"b"},
"2": {"property":"c"}
}
Можно ли это исправить?! Есть ли способ, что я могу настроить Struts 2 JSon плагин для создания
{
"samples": {
"0": {"property":"a"},
"1": {"property":"b"},
"2": {"property":"c"}
}
}
Или есть почему распорки 2 JQuery плагин в принять простой JSon массив
Второй работает, но первый не. Первый возвращает пустой. однако '' includeProperties "," samples. *, samples [\\ d +]. * "}' работает. Я буду отмечать это как правильно, но можете ли вы предложить и первый подход?! –
Это регулярное выражение для совпадения имен, начинающихся с 'samples'. –
Вы правы! Это похоже на регулярное выражение vaid, но я не знаю, почему мы должны объявлять 'samples [\\ d +]. *' Тоже :(Я обновлю, если найду что-нибудь –