Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从用户界面接受动态json数据的操作_Java_Json_Struts2 - Fatal编程技术网

Java 从用户界面接受动态json数据的操作

Java 从用户界面接受动态json数据的操作,java,json,struts2,Java,Json,Struts2,我希望有一个Action类,它应该接受从用户界面构造的JSON字符串,在Action类中没有setter和getter 可能吗?如果是这样,我需要在操作类和配置文件(struts.xml)中遵循哪些约定?将它们作为类型为“application/json”的内容发布。您可以通过一个简单的jqueryajax调用来实现这一点,您可以在其中指定内容类型和数据类型 $.ajax({ type: "POST", url: "/the/action/url&quo

我希望有一个
Action
类,它应该接受从用户界面构造的JSON字符串,在
Action
类中没有setter和getter


可能吗?如果是这样,我需要在
操作
类和配置文件(
struts.xml
)中遵循哪些约定?

将它们作为类型为
“application/json”
的内容发布。您可以通过一个简单的jqueryajax调用来实现这一点,您可以在其中指定
内容类型
数据类型

$.ajax({
   type: "POST",
   url: "/the/action/url",     
   data : {},
   dataType:"JSON",
   contentType: "application/json; charset=utf-8"
});
使用
json-lib-2.3-jdk15.jar
添加到项目依赖项中。随提供的插件,用于读取和填充请求中的操作。如果不想填充操作,则不应使用此拦截器。而是使用此库或任何其他第三方库手动解析请求,以获取请求。或者您可以重写拦截器并注释正在使用但使用反序列化对象的代码


另外,在手动创建/解析JSON数据时,您可能会发现示例非常有用。

如果您希望发送包含多个键值对的JSON对象,并且希望在操作类中获取这些键值,而不创建任何setter/getter

在Action类Decelleration中,我们应该实现ServletRequestAware,并且应该重写setServletRequest()方法并设置HttpServletRequest属性

public class YourClass extends ActionSupport implements ServletRequestAware

private HttpServletRequest request;

@Override
public void setServletRequest(HttpServletRequest request) {
    this.request = request;
}

public HttpServletRequest getServletRequest() {
  return this.request;
}
在我们的目标函数中,我们应该使用上面的请求对象来获取参数(按json中设置的名称作为键):

您的JSON对象应该包含以下数据:

var jsonData = {"key1": "Hello", "key2":"There"};

为什么没有getter和setter?我可以向您解释其他情况。基于页面的上下文,我在java脚本文件中嵌入了许多静态json格式。我需要将这些静态json字符串发送到相应的操作类XSS paradise,然后从服务器而不是从客户端加载它们:////如果不使用setter,那么期望这是不可能的。JSON字符串就是:一个字符串。公开字符串属性。设定它。简单。你可以随心所欲地解析它,比如谷歌GSON等等。
var jsonData = {"key1": "Hello", "key2":"There"};