如何通过JSTL将Request Payload
数据打印到页面?
在上图中,我正在向jstl
控制器发送帖子。现在我可以轻松访问查询字符串参数,例如${param.test}
将打印出测试参数。
但我不确定如何访问请求有效负载中的数据我尝试了$ {requestScope}对象${requestScope.PAY}
,但数据似乎并不存在。
是否有可访问的对象保存此数据?如果不是最好的工作是什么?
更新
我不知道有多相关,但我正在使用有角度的$http.post
进行通话。
答案 0 :(得分:2)
两个选项:
1)当您发送请求时,将其发送为内容类型等于“application / x-www-form-urlencoded”而不是“text / json”,然后您可以使用$ {param访问参数。 PAY}就像它是一个查询字符串参数一样。当您发布HTML表单时,“application / x-www-form-urlencoded”是默认编码。
- 如果那不是一个选项,因为你不控制请求方 -
2)您将需要使用servlet或JSP scriptlet来访问内容,如以下问题:HttpServletRequest get JSON POST data
答案 1 :(得分:1)
您要做的是将Angular中的帖子请求转换为application/x-www-form-urlencoded
。因此,在您的应用程序中,您将执行类似的操作。
var app = angular.module('myAapp', [])
app.config(function($httpProvider) {
$httpProvider
.defaults
.headers
.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$httpProvider.defaults.transformRequest = [function (data) {
return angular.isObject(data) && String(data) !== '[object File]' ? jQuery.param(data) : data;
}];
})
这应该有用。