我的 URL 看起来像
http://server/context/page.jsf?param1=value1#state=statename::stateparam=value2
是否可以使用 h:outputLink
获取此 URL 并编码组件(两个值)?
我已经尝试过
<h:outputLink value="page.jsf">
<f:param name="param1" value="#{servervalue1}#state=statename::stateparam=#{servervalue2}"/>
<h:outputText value="#{linkname}"/>
</h:outputLink>
但它对 URL 的状态部分进行了编码,因此不再起作用。
最佳答案
这是不可能的。您能做的最好的事情就是创建一个自定义 EL 函数,该函数调用 URLEncoder#encode()
,如下所示:
public static String urlEncode(String value) {
return URLEncoder.encode(value, "UTF-8");
}
然后按如下方式使用它:
<h:outputLink value="page.jsf?param1=#{util:urlEncode(value1)}#state=statename::stateparam=#{util:urlEncode(value2)}">
关于java - 是否可以使用 h :outputLink? 对带有 # anchor 的 URL 进行组件编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195189/