Struts 2:使用JQuery ajax submit发送JSON字符串以映射到复杂类型列表

如果struts 2动作类具有属性

List userList

用户类具有类似的属性

username, password, createdDate

是否可以通过传递适当的JSON字符串使struts填充列表,同时提交指向该操作的jQuery ajax请求。

如果可能怎么样? 特别是JSON字符串将如何显示?

请询问任何澄清。

编辑:如果我不够清楚,我很抱歉。 我想要做的不是从Action获取数据到JSP,或提交表单来填充数据。 我想提交一个带有JSON数据的AJAX请求,Struts 2可以使用它来自动填充Action类中的List。

不要使用AJAX提交表单。

  1. 你应该定义你的行动结果type="json"并检查你的类路径上是否有json插件,确保你有

       // your action here  ...  
  2. 像这样编辑你的动作类

     public class myAction extends ActionSupport { private List userlist; // getter and setter public String execute() { // your moves return SUCCESS; } } 
  3. 然后你可以在你的jsp页面上做一些显示结果,如:

          

我希望这可以帮到你..

UPDATE

如果你已经有一个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"} ] } 

这应该是格式。

那么你应该使用List userList从你的动作类中获取这个对象

试试吧和反馈。

更新2

也许你应该使用String获取你的json对象,然后使用以下命令将其转换为Java Object:

 String stringObject; // which get your string from http List userList; userList = (List)JSON.deserialize(stringObject,List.class); 

请再次反馈。