In the end I used context.redirectToPage(). This performs the search and leaves the URL clear of any parameters. The disadvantage is that the initial search is not bookmarkable. One could probably get around that by coding the redirect to occur on the next click of the search button rather than immediately. But in my particular case that would mean adding some transfer of many requestScope variables to sessionScope ones and the back on the load of the page, which I did not do.
This is the code I used.
if((context.getUrlParameter("par1")!="")) {sessionScope.put("par1",parseFloat(context.getUrlParameter("par1")));
sessionScope.put("renderResults", true);sessionScope.put("urlRedirect", true);
context.redirectToPage("XPage.xsp",true);} else {if(sessionScope.urlRedirect) {requestScope.par1e=sessionScope.par1;
requestScope.renderResults=sessionScope.renderResults;sessionScope.remove("par1");
sessionScope.remove("renderResults");sessionScope.remove("urlRedirect");}
}