Jsp 通过JSTL访问Post数据-Angular$Post

Jsp 通过JSTL访问Post数据-Angular$Post,jsp,post,parameters,jstl,Jsp,Post,Parameters,Jstl,如何通过JSTL将请求有效负载数据打印到页面 在上图中,我向jstl控制器发送帖子。现在我可以轻松访问查询字符串参数,例如,${param.test}将打印出测试参数 但是我不确定如何访问请求负载中的数据,我尝试了${requestScope}对象${requestScope.PAY},但是数据似乎不在那里 是否有可访问的对象保存此数据?如果不是,最好的解决办法是什么 更新 我不知道是否相关,但我正在使用angular的$http.post进行通话。两个选项: 1) 发送请求时,将其作为等于“

如何通过JSTL将
请求有效负载
数据打印到页面

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

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

是否有可访问的对象保存此数据?如果不是,最好的解决办法是什么

更新

我不知道是否相关,但我正在使用angular的
$http.post
进行通话。

两个选项:

1) 发送请求时,将其作为等于“application/x-www-form-urlencoded”的内容类型而不是“text/json”发送,然后可以使用${param.PAY}访问参数,就像它是查询字符串参数一样。“application/x-www-form-urlencoded”是发布HTML表单时的默认编码

-或者,如果因为您不控制请求端,所以这不是一个选项-


2) 您需要使用servlet或JSP scriptlet来访问内容,如下面的问题所示:

您要做的是将您的post请求以角度转换为
应用程序/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;
    }];
    })

这应该行得通。

用同样的方法尝试
${param.PAY}
@JigarJoshi不幸的是,这对我也不起作用。。你知道为什么会这样吗?看看吧,我想OP和你在同一个案子里。还有一个解决方案(在使用详细说明的示例之前,请阅读belwo wrt编码问题的注释),但是您必须在servlet中对该解决方案进行编码,因为应该避免向JSP添加Java代码,因此,您需要一种从请求中提取主体的方法。不能通过标题或参数访问它。@fvu这是可以通过发起帖子的方式解决的问题吗?我正在查看您提供的链接中的一条评论:
看到JavaScript代码发送请求会很有趣。显然,它以错误的方式组合了请求参数BalusC
如果可能的话,我希望在转到
servlet
解决方案之前在post端纠正这个问题。感谢您提供的信息,不幸的是,仅仅更改
内容类型对我来说不起作用,我还必须使用
jQuery的$.param()
函数对数据进行转换,如下所示:对于那些寻找javascript替代方案的人,您使用的是jQuery.param函数。见: