views:

88

answers:

1

I have a small application built using Seam 2.2, Richfaces 3.3, JBoss 5.1.

Most of the page navigation adds the request parameters to the target URL. I would like to hide parameters to be hidden to the customer who is using the application (e.g. I would expect the URL to be something like "http://localhost:8080/books/Book.seam". The parameters (userId, orderId and cmId) are currently mapped to the backend bean via Book.page.xml.

How do I prevent the request parameters from showing up in the browser URL, as it also allows the customer to manipulate the URL.

We did look at seam URL re-writing feature, it talked about manipulating say the primary key id in a REST format, not sure how to accomplish something more complex like the above use case in a elegant fashion.

+3  A: 

PrettyFaces offers url-rewriting for JSF.

You can't, however, 'hide' the GET parameters. Unless you make them POST parameters. But all submissions are POST in JSF by default.

Bozho
We have tried prettyfaces, tuckey url re-write filters but couldn't get it to work in our environment.We have used the web:rewrite-filter from seam and have been reasonably successful regarding the URLs which are being generated, but it becomes very complex when it is on a list page generated by EntityQuery where you have sort parameters like dir, logic, sort apart from the query parameters for running the query itself which are many in our case. <web:rewrite-filter view-mapping="*.seam" />CONTINUED in the next comment
Kalpana
We are passing page parameters whenever we load a particular object from the list of objects generated via EntityQuery (i.e. we have many f:param declaration on a s:link pointing to the Entity itself, and these page parameters are passed in the URL. You have mentioned this to be made as POST parameters, how can I do this?
Kalpana