Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Тип действия Struts2 json вызывает все функции из класса Action

Автор вопроса: user359187Ответов: 3

Я использовал Struts2 json, как это

<package name="showcase" extends="json-default" >

    <action name="DashBoardActivityJson" class="com.myDrDirect.doctor.action.patientOrderDetails" method="getRecentOrderDetails" >
       <result name="success" type="json" />
    </action>
 </package>

Но здесь моя проблема немного сумасшедшая. Когда я обращаюсь к функции внутри класса, она вызывает каждую функцию на странице, хотя я упоминаю здесь имя метода. То есть, когда я устанавливаю type="json", действие вызывает как getRecentOrderDetails, так и getUserDetailses из класса com.myDrDirect.doctor.action.patientOrderDetails, но здесь я вызываю только getRecentOrderDetails. Кто-нибудь чувствует эту проблему раньше, пожалуйста, помогите.

jsonstruts2

Ответы

Ответ 1 · рейтинг 3 · Umesh Awasthi

Я считаю, что плагин JSON пытается вызвать каждый метод, начинающийся с имени "get", для сериализации вывода. Один из способов - переименовать метод в какой-то другой общий способ обработки этого. В противном случае вы можете включать и исключать параметры. Подробности см. в документации плагина.

json-плагин

Ответ 2 · рейтинг 1 · Quaternion

Плагин struts2-json-plugin сериализует ваши действия, поэтому то, что вы описываете, является ожидаемым поведением. Чтобы обойти это, плагин предоставляет параметры включения и исключения, которые изменяют сериализацию таким образом, что он обрезает объект до желаемой формы.

В этом вопросе есть хороший пример этого: Struts2 + Json Сериализация элементов и вот еще одна проблема с плагином Json в Struts 2

Ознакомьтесь с документацией по подключаемому модулю на сайте struts2: http://struts.apache.org/2.2.3/docs/json-plugin.html здесь объясняется, как использовать xml или аннотации.

Ответ 3 · user359187

Я правильно понял, когда пишу действие в отдельном файле. Спасибо, ребята, за помощь в решении проблемы.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы