javascript – JSF JSON:在servlet中输出“plain”文本?
作者:互联网
我正在尝试将Mootools(Request.JSON)与JSF一起使用 – 主要是因为我前段时间在CakePHP中编写了一个类似的应用程序,并希望重用大部分JS部分.
有没有办法使用像无标记facelet这样的请求返回纯文本(“application / json”)?
我想出的唯一解决方案是使用HttpServlet并将其注册到web.xml中的服务URL.这种方法可以正常返回一个没有任何标记的文件,但我更倾向于使用我注入Spring的ManagedProperties,而不是仅限于WebApplicationContextUtils.
我错过了什么或是推荐的方式吗?
解决方法:
有一种方法.但是,使用错误的工具来处理工作时,丑陋且基本上滥用JSF / Facelets.
例如.
<ui:composition
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<f:event type="preRenderView" listener="#{bean.renderJson}" />
</ui:composition>
同
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允许你通过@Inject注入@Named bean,即使在简单的@WebServlet中也是如此.
也可以看看:
> Servlet vs RESTful
> How to use Servlets and Ajax?
标签:javascript,json,jsf,facelets 来源: https://codeday.me/bug/20190729/1575680.html