如何使用 PrimeFaces 发送 POJO 作为回调参数请求上下文?
我可以发送回调参数,只要我只发送一些基本类型(如 String),它就可以完美工作。但同样的事情即使对于最简单的 POJO 也不起作用。 PrimeFaces 指南说 RequestContext.addCallbackParam() 方法可以处理 POJO 并将它们转换为 JSON。我不知道为什么它在我的情况下不起作用。
有人这样做过吗?
I can send callback param(s) and it works perfectly as long as I am only sending some primitive types like String. But the same thing does not work for even the simplest POJO. PrimeFaces guide says that the RequestContext.addCallbackParam() method can handle POJOs and it coverts them into JSON. I don't know why it's not working in my case.
Has anybody done that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
找到解决方案了! -------------------------------------------------- -------------------
我做了一些研究并找到了这个问题的答案。
解决方案是使用一些 JSON 库(现在我使用 GSON)将 Java 对象转换为 JSON 对象。
new Gson().toJson(someJavaObj)
返回字符串。只需将字符串作为参数发送,并在客户端使用 js 的 eval 或某些 js 库的函数将其再次转换为 JSON。
事实上,它非常干净和简单。
抱歉,我实际上没有发布解决方案。下面是我的解决方案 -
支持 bean 中的操作方法 -
视图中的 PrimeFaces p:commandButton -
Javascript 函数 -
我非常感谢并欢迎任何建议或意见。
谢谢你!
Solution found! ---------------------------------------------------------------------
I did some research and found the answer to this question.
And the solution was to use some JSON library (right now I am using GSON) to convert Java objects to JSON objects.
new Gson().toJson(someJavaObj)
returns string. Just send the string as the param and on the client side using js' eval or some js library's function to turn that into JSON again.
Actually, it was pretty clean and simple.
Sorry I actually did not post the solution. Below is the my solution -
Action method in the backing bean -
PrimeFaces p:commandButton in the view -
Javascript function -
I would really appreciate and welcome any suggestion or opinion.
Thank you!