Struts 2: отправить строку JSON с помощью jQuery ajax submit для отображения в список сложных типов
Если класс действия struts 2 имеет свойство
List<User> userList
.
И пользовательский класс имеет такие свойства, как
username, password, createdDate
и т.д.
Можно ли заставить struts заполнять список, передавая соответствующую строку JSON, отправляя запрос ajax jQuery, указывающий на это действие.
Если это возможно, то как? В частности, как должна выглядеть строка JSON?
Пожалуйста, попросите разъяснений.
EDIT: извините, если я недостаточно ясно выразился. Что Я не хочу получать данные из Action в JSP или отправлять форму для заполнения данных. Я хочу отправить запрос AJAX с данными JSON, которые Struts 2 может использовать для автоматического заполнения списка в классе Action.
Не отправлять форму с помощью AJAX.
1 ответ:
Вы должны определить результат вашего действия
type="json"
и проверить, что у вас есть плагин json на вашем пути к классу, убедитесь, что у вас есть<struts> <package name="your_package" extends="struts-default, json default" namespace="/"> // your action here </pacakge> ... </struts>
Отредактируйте свой класс действий следующим образом
public class myAction extends ActionSupport { private List<User> userlist; // getter and setter public String execute() { // your moves return SUCCESS; } }
Затем вы можете сделать некоторые на Вашей странице jsp, чтобы показать результат, как:
<s:iterator list="userList"> <s:property value="username"/> <s:property value="password"/> <s:property value="createdDate"/> <s:iterator>
Я надеюсь, что это может помочь вам..
Обновить
Если у вас уже есть объект json:
{ "userList" : [ {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"}, {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"}, {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"}, {"username" : "username", "password" : "afgasdfa", "createdDate" : "date-in-format"} ] }
Это должен быть формат.
Тогда вы должны получить этот объект из класса action с помощью
List<User> userList
Просто попробуйте и обратная связь.
Обновление 2
Возможно, вам следует получить объект json с помощью
String
, а затем преобразовать его в объект Java с помощью:String stringObject; // which get your string from http List<User> userList; userList = (List<User>)JSON.deserialize(stringObject,List<User>.class);
Пожалуйста, обратная связь еще раз.