3

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

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

这将显示在弹出窗口中,如:

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

问题是,这value2是一个字符串,其中有一个&。说,value2 = ab&12。我如何确保value2读取为ab&12并且不会ab因为&符号而中断?

4

1 回答 1

3

您需要对其进行URL 编码。在普通的Java中,那将是

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

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

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

也可以看看:

于 2013-03-26T11:41:39.497 回答