JSF基本上是错误的工作工具。 您应该使用像JAX-RS,而不是像JSF基于组件MVC框架的Web服务框架。
但如果你真的坚持,你可能滥用JSF以下方式发送任意的响应返回。 利用视图调用方法的视图被呈现之前和设置请求参数bean属性(注意,这也有效地适用于GET请求)。
喜欢的东西下面,如果你打算使用的帮助返回JSON 谷歌GSON什么:
public void process() throws IOException {
String message = "Hello! You have sent the following data: " + data;
String json = new Gson().toJson(Collections.singletonMap("message", message));
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext ec = context.getExternalContext();
ec.setResponseContentType("application/json");
ec.setResponseCharacterEncoding("UTF-8");
ec.getResponseOutputWriter().write(json);
context.responseComplete(); // Prevent JSF from rendering the view.
}
同样,你滥用JSF的错误的工具的工作。 看看JAX-RS或者甚至一个普通的servlet。 另请参见Servlet的VS REST风格 。