【问题标题】:How to escape/avoid the ampersand (&) in a JSF url如何在 JSF url 中转义/避免 & 符号
【发布时间】:2013-03-26 11:22:12
【问题描述】:

我在 JSF 中使用 window.open(url,"selectWindow","status=no,width=610,height=480,scrollbars=no")。 网址看起来像这样:

/abcxyz.jsf?param1=value1&param2=value2 

会在弹出窗口中显示,如:

/abcxyz.jsf?param1=value1&param2=value2

问题是,value2 是一个包含& 的字符串。说,value2 = ab&12。如何确保 value2 被读取为 ab&12 并且在 ab 之后不会因为 & 符号而中断?

【问题讨论】:

    标签: jsf url special-characters html-escape-characters


    【解决方案1】:

    你需要URL-encode它。在纯 Java 中,这将是

    String encodedValue2 = URLEncoder.encode(value2, "UTF-8");
    

    & 应该这样变成%26。字符集应与服务器配置用于解码传入的 HTTP 请求 URI 的字符集相同(但通常默认为 ISO-8859-1)。

    JSF <f:param><h:outputLink><h:link> 中使用时也会这样做,但是它们在为 window.open() 生成 URL 时没有帮助,因此您确实需要在支持 bean 的帮助下执行此操作URLEncoder 或创建 custom EL function。如果您碰巧使用 JSF 实用程序库 OmniFaces,那么您可以使用 #{of:encodeURL()}

    另见:

    【讨论】:

      猜你喜欢
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多