I have created a page where I want to get the JSON response from a JSF page,
but when i try to get page it shows me whole html page.
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>Facelet Title</title></head><body>
[{"value": "21", "name": "Mick Jagger"},{"value": "43", "name": "Johnny Storm"},{"value": "46", "name": "Richard Hatch"},{"value": "54", "name": "Kelly Slater"},{"value": "55", "name": "Rudy Hamilton"},{"value": "79", "name": "Michael Jordan"}]
</body></html>
JSF is a MVC framework generating HTML, not some kind of a REST web service framework. You’re essentially abusing JSF as a web service. Your concrete problem is simply caused by placing
<html>tags and so on in the view file yourself.If you really insist, then you can always achieve this by using
<ui:composition>instead of<html>. You also need to make sure that the right content type ofapplication/jsonis been used, this defaults in JSF namely totext/html.with
But I strongly recommend to look at JAX-RS or JAX-WS instead of abusing JSF as a JSON web service. Use the right tool for the job.
See also: