Jsf 2 当上下文根为root时,如何使用#{request.contextPath}/&引用;?
我们目前正在将一个EE6/JSF应用程序从部署路径Jsf 2 当上下文根为root时,如何使用#{request.contextPath}/&引用;?,jsf-2,el,Jsf 2,El,我们目前正在将一个EE6/JSF应用程序从部署路径someserver.com/app移动到它自己的子域app.someserver.com 大多数事情都进展顺利,但我们在web层如何处理现在基本不存在的上下文根方面遇到了意想不到的问题 我们早期发现并修复的一件事是,我们设置的cookie的路径从“/app”缩短为”,因此只能读取服务器上的每个文件夹,而不能读取整个应用程序 现在,我们在JSF中生成的超链接中发现了一个类似的问题: <a href="#{request.contextPat
someserver.com/app
移动到它自己的子域app.someserver.com
大多数事情都进展顺利,但我们在web层如何处理现在基本不存在的上下文根方面遇到了意想不到的问题
我们早期发现并修复的一件事是,我们设置的cookie的路径从“/app”
缩短为”
,因此只能读取服务器上的每个文件夹,而不能读取整个应用程序
现在,我们在JSF中生成的超链接中发现了一个类似的问题:
<a href="#{request.contextPath}">Go to home page</a>
,因此简单地用“/”
替换空的上下文路径是不够的
我错过了什么明显的东西吗?我看到了一个解释(与我们的经验相符),但没有详细说明可能的解决方案。结果是我没有思考清楚。我非常专注于修复
{request.contextPath}
生成的字符串,以至于我忽略了它,以至于我基本上一直都在错误地使用它
最简单的解决方法就是使用
<a href="#{request.contextPath}/">...</a>
(带尾随斜杠)以到达应用程序的根目录,并且绝对不要使用不带斜杠的href=“#{request.contextPath}”
这解决了这两种情况。如果应用程序部署到“some\u文件夹”,则链接将变成“some\u文件夹/”
。如果应用程序部署到服务器根目录,则链接将变为“/”
希望这能帮助那些跌入同样陷阱的人。原来我没有想清楚。我非常专注于修复
{request.contextPath}
生成的字符串,以至于我忽略了它,以至于我基本上一直都在错误地使用它
最简单的解决方法就是使用
<a href="#{request.contextPath}/">...</a>
(带尾随斜杠)以到达应用程序的根目录,并且绝对不要使用不带斜杠的href=“#{request.contextPath}”
这解决了这两种情况。如果应用程序部署到“some\u文件夹”,则链接将变成“some\u文件夹/”
。如果应用程序部署到服务器根目录,则链接将变为“/”
希望这能帮助那些跌入同样陷阱的人