如何将json负载映射到struts2中的模型bean

如何将json负载映射到struts2中的模型bean,struts2,Struts2,有没有办法将json负载映射到模型bean。?如果可能,请给我举个例子 以下是我正在使用的类 package com.sample; import java.io.Serializable; public class Employee implements Serializable{ private String firstName; private String lastName; private int id; public String getFirs

有没有办法将json负载映射到模型bean。?如果可能,请给我举个例子

以下是我正在使用的类

package com.sample;

import java.io.Serializable;

public class Employee implements Serializable{
    private String firstName;
    private String lastName;
    private int id;

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Employee [firstName=").append(firstName)
                .append(", lastName=").append(lastName).append(", id=")
                .append(id).append("]");
        return builder.toString();
    }

}
下面是我的动作课

package com.sample.controller;

    import com.opensymphony.xwork2.ModelDriven;
    import com.sample.Employee;

    public class EmployeeController implements ModelDriven<Employee> {
        private String name = "Hari krishna";
        Employee emp = new Employee();

        public String addEmployee() {
            System.out.println(emp);
            return "success";
        }

        @Override
        public Employee getModel() {
            return emp;
        }
    }

我正在使用高级Rest客户端发布数据。

当您将json数据从客户端发送到服务器时,将其作为字符串发送,并在action类中创建一个普通字符串变量来接收和保存json的字符串

然后,您可以使用json解析器从字符串手动填充bean, 或者使用具有内置功能的库来实现此目的

GoogleGSON是一个Java序列化/反序列化库,可以将Java对象转换为JSON并返回


您可以创建自己的struts拦截器来包装这个过程,或者直接在action类中实现它。

我尝试集成Jersey,但没有成功。我没有找到太多与post请求相关的struts2 json插件相关的示例。我遵循了“使用空值初始化的模型类Employee”中给出的答案,如“Employee[firstName=null,lastName=null,id=0]”。但是,我正在将json{“firstName”:“Hari”,“id”:123,“lastName”:“assds”}传递到我的操作url。你能告诉我我在这里缺少什么吗?你只配置了一个截取器。使用
defaultStack
并向其添加json拦截器。没有用处。有一个s2 json插件,它对我很有用,所以我分享了我的观点。如果有一个s2 json插件,并不意味着你不能创建自己的简单合适的解决方案。
package com.sample.controller;

    import com.opensymphony.xwork2.ModelDriven;
    import com.sample.Employee;

    public class EmployeeController implements ModelDriven<Employee> {
        private String name = "Hari krishna";
        Employee emp = new Employee();

        public String addEmployee() {
            System.out.println(emp);
            return "success";
        }

        @Override
        public Employee getModel() {
            return emp;
        }
    }
{
"model": {
"firstName": null
"id": 0
"lastName": null
}-
}