gpt4 book ai didi

java - 支柱 2 : Send a JSON string with JQuery ajax submit to be mapped into a List of complextypes

转载 作者:行者123 更新时间:2023-11-30 07:24:37 25 4
gpt4 key购买 nike

如果struts 2 action类有一个属性

List<User> userList .

并且用户类具有如下属性

username, password, createdDate

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

如果可能怎么办?特别是 JSON 字符串必须是什么样子?

请询问任何说明。

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

不使用 AJAX 提交表单。

最佳答案

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

    <struts>
    <package name="your_package" extends="struts-default, json default" namespace="/">
    // your action here
    </pacakge>
    ...
    </struts>
  2. 像这样编辑你的 Action 类

    public class myAction extends ActionSupport {
    private List<User> userlist; // getter and setter
    public String execute() {
    // your moves
    return SUCCESS;
    }
    }
  3. 然后您可以在您的 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"}
]
}

这应该是格式。

然后你应该用List<User> userList从你的 Action 类中得到这个对象

只需尝试并获得反馈。

更新 2

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

String stringObject; // which get your string from http
List<User> userList;

userList = (List<User>)JSON.deserialize(stringObject,List<User>.class);

请再次反馈

关于java - 支柱 2 : Send a JSON string with JQuery ajax submit to be mapped into a List of complextypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11429828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com