考虑两个Web应用程序--A和B都托管在不同的服务器上。在单击B中的链接时,向A发出HTTP请求,该请求将响应A的页面的URL以显示给用户。使用其代理,B点击URL,显示包含记录列表的A页面。此时,URL就像 - https://B/proxy/A/context-root-A/page1.faces?un=1234,一切正常,直到这里。
现在我需要的是当在这个JSF page1中单击一个按钮时,必须显示第2页显示记录详细信息。但是,当单击该按钮时,请求的URL类似于https://B/context-root-A/page2.faces?un=1234并导致HTTP 404 。
原始代码在commandButton的操作中从A的上下文返回了page2的路径。在看了一些例子后,我想到了使用外部上下文重定向。但是这种重定向没有任何影响,最终得到相同的HTTP 404。
代码段是:
<h:form name="myForm">
<h:commandButton value="view" action="{myBean.view}"/>
</h:form>
public void view(){
FacesContext.getCurrentInstance().getExternalContext()
.redirect("https://B/proxy/A/context-root-A/page2.faces?un=1234");
}
我还将记录的id作为请求参数附加到重定向URL。在这里忽略它以保持问题简单。还尝试了face-redirect=true
,但仍无效。
我试图最好地解释我面临这个问题的环境。任何有关我所做错事的帮助都将受到高度赞赏。