如何将json负载映射到struts2中的模型bean
有没有办法将json负载映射到模型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
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
}-
}