我正在使用GlassFish 4.0的JSF。代码h:输出链接值溢出
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...skipped...
</h:head>
...skipped...
<h:outputLink value="#{item.lastInstance.url}" escape="false">
#{item.lastInstance.refName}
</h:outputLink>
下面的片段有望被翻译为:
<a href="https://url-unescaped>refname-unescaped</a>
,但它被翻译为:
<a href="https://url-escaped>refname-unescaped</a>
Bean的URL和refName都包含UTF-俄文8不允许在URL中使用空格和其他符号。但是这些非转义的链接已经在浏览器中测试过了(Firefox 24.0)。 跳出的序列被浏览器以某种方式解释并且不起作用。
我无论怎样才能:
- 告诉JSF无法逃脱H:outputLink的值网址转义
感谢所有帮助
我不认为,浏览器确实是---)。当我在地址字符串中输入可怕的(UTF-8编码,国家符号和空格)URL时,它会回复我想要的文档。无论如何,我有我的问题选项2:告诉浏览器该网址已被转义。 –
网址有效。如果它被输入到浏览器的addr行中,并且所需的资源被GETted,我认为它被认为是有效的。事实是,这个URL是通过连接http:// server/app + path_part + filename_part由bean构建的。 server_part和path_part始终是ascii。但filename_part是从用户上传文件的名称派生的。该文件的名称是一个有效的unix文件名(允许使用国家代码)。因此,我认为,URL本身是有效的。遵循规范的文字,它的非转义表示是无效的。 –
这个问题可能是我在html源代码中正确地看到了像这样的“server_path_part /%D0%A1%D1%87%D0%B5%D1%82%20%D1%82%D1%80%D1%83% D0%B1%D1%8B.jpg“但链接悬停时链接就像”server_path_part /!G5B B%40C1K.jpg“。而且我必须明白我怎么能... –