今天在前端通过angular的$http向后台传值的时候, 发现后台无法获取到值, 仔细检查后发现浏览器发送的
是request payload, 查阅大量博客之后才发现是因为struts的后台没有办法解析application/json的数据, 所
以应该在$http中设置:
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
将提交数据转换成form表单提交的默认格式, 而不是json的格式(如果使用servlet的话就可以解析, 但是struts不支持)
提交的json 数据也应该转成key=value&key=value 这样标准的表单提交格式, 这样只需要在action 中添加同名属性
和get/set 方法, 就能自动给属性赋值了
附记:
如果不想在前端转格式的话, 可以直接传json 数据到后台, 通过request.getParameterMap().entrySet().iterator().next().getKey()
获取json 的字符串