Jsp 通过JSTL访问Post数据-Angular$Post
如何通过JSTL将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
控制器发送帖子。现在我可以轻松访问查询字符串参数,例如,${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函数。见: