通过JSTL访问发布数据 - Angular $ post

时间:2014-08-22 16:39:21

标签: jsp post parameters jstl

如何通过JSTL将Request Payload数据打印到页面?

Post Data

在上图中,我正在向jstl控制器发送帖子。现在我可以轻松访问查询字符串参数,例如${param.test}将打印出测试参数。

但我不确定如何访问请求有效负载中的数据我尝试了$ {requestScope}对象${requestScope.PAY},但数据似乎并不存在。

是否有可访问的对象保存此数据?如果不是最好的工作是什么?

更新

我不知道有多相关,但我正在使用有角度的$http.post进行通话。

2 个答案:

答案 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;
    }];
    })

这应该有用。