当前位置:  开发笔记 > 编程语言 > 正文

JSF + JSON:在servlet中输出"plain"文本?

如何解决《JSF+JSON:在servlet中输出"plain"文本?》经验,为你挑选了1个好方法。

我正在尝试将Mootools(Request.JSON)与JSF一起使用 - 主要是因为我前段时间在CakePHP中编写了一个类似的应用程序,并希望重用大部分JS部分.

有没有办法使用像无标记facelet这样的请求返回纯文本("application/json")?

我想出的唯一解决方案是使用HttpServlet并将其注册到web.xml中的服务URL.这种方法可以正常返回一个没有任何标记的文件,但我更倾向于使用我注入Spring的ManagedProperties,而不是仅限于WebApplicationContextUtils.

我错过了什么或是推荐的方式吗?



1> BalusC..:

有一种方法.但是,使用错误的工具来处理工作时,丑陋且基本上滥用JSF/Facelets.

例如


    

public void renderJson() throws IOException {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext();
    externalContext.setResponseContentType("application/json");
    externalContext.setResponseCharacterEncoding("UTF-8");
    externalContext.getResponseOutputWriter().write(someJsonString);
    facesContext.responseComplete();
}

更好的是使用JAX-RS Web服务.我不确定Spring托管bean是否可以注入,但是新的Java EE 6 CDI允许你在@Named任何地方注入bean @Inject,即使是简单的@WebServlet.

也可以看看:

Servlet与RESTful

如何使用Servlets和Ajax?

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有