Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 RESTAPI插件-参数使用body而不是查询字符串_Java_Json_Rest_Struts2_Struts2 Rest Plugin - Fatal编程技术网

Java RESTAPI插件-参数使用body而不是查询字符串

Java RESTAPI插件-参数使用body而不是查询字符串,java,json,rest,struts2,struts2-rest-plugin,Java,Json,Rest,Struts2,Struts2 Rest Plugin,我将此用作在Struts2上创建仅REST配置的参考: 我有一个模型,收据和几个测试字段:标题,正文 目前,为了创建收据,我通过以下方式发送请求: POST /receipt/?body=new_body&title=new_title 它给我创建了一张收据,上面有新的正文和标题 这不起作用: 邮寄/接收/ { “主体”:“新主体”, “标题”:“新标题” } 下面是一些代码: struts.xml: ReceiptController.java: 公共类ReceiptCont

我将此用作在Struts2上创建仅REST配置的参考:

我有一个模型,收据和几个测试字段:标题,正文

目前,为了创建收据,我通过以下方式发送请求:

POST /receipt/?body=new_body&title=new_title
它给我创建了一张收据,上面有新的正文和标题

这不起作用:

邮寄/接收/
{
“主体”:“新主体”,
“标题”:“新标题”
}
下面是一些代码:

struts.xml


ReceiptController.java

公共类ReceiptController实现模型驱动{
私有ReceiptManager ReceiptManager=新的ReceiptManager();
私有字符串id;
私人收据模型=新收据();
私人收藏清单;
公共对象getModel()
{
返回(列表==null?模型:列表);
}
公共HttpHeaders创建()
{
receiptManager.save(模型);
返回新的DefaultHttpHeader(“创建”);
}
公共HttpHeaders show()
{
model=receiptManager.find(id);
返回新的DefaultHttpHeader(“显示”);
}
公共HttpHeaders更新()
{
receiptManager.save(模型);
返回新的DefaultHttpHeader(“更新”);
}
公共HttpHeaders destroy()
{
型号=receiptManager.destroy(id);
返回新的DefaultHttpHeader(“销毁”);
}
公共HttpHeaders索引()
{
list=receiptManager.list();
返回新的DefaultHttpHeaders(“索引”).disableCaching();
}
公共字符串getId()
{
返回id;
}
公共无效集合id(字符串id)
{
this.id=id;
}
}

它应该按我所希望的那样工作,还是插件就是这样工作的?

我猜postman在请求正文中发送JSON,并设置内容类型
application/JSON
。如果将
json
拦截器添加到堆栈中,Struts可以解析请求


中的
“json”
拦截器的说明:

如果使用了拦截器,将根据请求中的JSON内容填充操作,拦截器的规则如下:

  • “内容类型”必须是“application/json”
  • JSON内容必须格式良好,语法请参见
  • 对于必须填充的字段,操作必须具有公共“setter”方法
  • 支持的填充类型有:原语(int、long…String)、日期、列表、映射、原语数组、其他类(稍后将详细介绍)和其他类的数组
  • JSON中要在列表或映射中填充的任何对象都是map类型(从属性映射到值),任何整数都是Long类型,任何十进制数都是Double类型,任何数组都是list类型
资源:


您是如何提出POST请求的?您的意思是什么?比如邮递员,我在这期中提到了如何。太好了,谢谢!你怎么知道这些?我只是struts和java/tomcat开发的初学者。你有什么建议吗?有描述这一切的好书吗?谢谢你应该读一下答案,我相信你会找到很多有用的信息。很明显,这篇文章被删除了。你能把信息贴在这里吗?谢谢,我已经添加了这个答案的链接。享受。