我正在使用jQuery对JSF2.0服务器进行AJAX调用。我调用的"page“看起来像这样:
<ui:composition template="/templates/jsonTemplate.xhtml">
<ui:define name="content">
#{tabBean.jsonUrl}
</ui:define>
</ui:composition>其中我的jsonTemplate.xhtml看起来像这样:
<html xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:insert name="content" />
</html>发送给客户机的结果包含我的JSON对象和HTML标记,我必须在客户机上去掉它们。
我想要返回的是一个纯JSON对象。
{ "url" : "/this/is/my/url.xhtml" }在客户端,我去掉和标签,对parseJSON使用jQuery并返回一个JSON对象。我试图指定没有HTML标签的模板,但它抱怨。这似乎是我能生成的最小响应。
我希望有一个能让我只返回纯RenderKit的JSON。
发布于 2012-01-13 19:25:56
我建议您使用带有Jaxson提供者的RESTEasy库。从它开始并不难。在正确配置之后,您将只需要实现对服务器的ajax请求。Java代码应该是smth:
@POST
@Path("/getPossiblePhases")
@Encoded
@Produces("application/json")
public List<Process> getPossiblePhases(@FormParam("prfID") Long prfID){
return new List<Process>(); // some list here for example
}作为响应,您将只得到JSON。Ofc它支持xml,GET请求,并有许多其他功能。支持Spring。
发布于 2012-01-13 21:17:27
只要不发出那些HTML标记即可。
替换
<html xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:insert name="content" />
</html>通过
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:insert name="content" />
</ui:composition>然而,更好的方法确实是使用use服务来实现这一点。JSF是一个基于组件的MVC框架,而不是一个web服务框架。看看JAX-RS/JAX-WS。
https://stackoverflow.com/questions/6654737
复制相似问题