Динамический wrapPrefix для типа результата JSON в Struts2 - PullRequest
0 голосов
/ 07 декабря 2010

У меня есть действие struts2 с типом результата json, которое в данный момент работает.Мне также удалось успешно добавить статический «wrapPrefix»:

<action name="example_*" class="example.ExampleAction" method="{1}">
    <result name="success" type="json">
        <param name="wrapPrefix">test</param>
    </result>
    <result name="error" type="chain">jsonError</result>            
</action>

Как и ожидалось, результат JSON для example_list.action был (где {...} указывает на исходный результат JSON):

test {...}

Я хочу сделать динамический "wrapPrefix".Я пробовал следующее, как с параметром "parse", так и без него:

<action name="example_*" class="example.ExampleAction" method="{1}">
    <result name="success" type="json">
        <param name="parse">true</param>
        <param name="wrapPrefix">${jsonPrefix}</param>
    </result>
    <result name="error" type="chain">jsonError</result>            
</action>

В ExampleAction я добавил геттер:

public String getJsonPrefix() {
    return "test";
}

Однако, теперь полученный JSONis:

$ {jsonPrefix} && {...}

Может ли тип результата json не анализировать выражения OGNL в своих параметрах?Нужна ли какая-то другая конфигурация для создания эффекта?Я хочу использовать (или) существующее автоматическое преобразование объектной модели в JSON, а не создавать целую пользовательскую строку JSON.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2010

Может ли тип результата json не анализировать выражения OGNL в своих параметрах?

Нет, он не может анализировать выражения OGNL в любом из своих параметров.Вы можете попробовать создать его подклассы, но, честно говоря, вам, вероятно, будет проще просто сделать локальную копию класса и изменить его напрямую, поскольку он не предназначен для расширения.

0 голосов
/ 07 декабря 2010

Исправление: второй (недействительный) результат JSON был:

$ {jsonPrefix} {...}

...