0

我正在使用 Mojarra、PrimeFaces 和 Tomcat 6.x 开发一个 JSF 2.0 项目。

我创建了一些指向文件的输出链接。这些文件在我的 WAR 外部,位于 Apache HTTPD 控制的目录中。

<h:outputLink value="#{fileItem.linkTarget.sourceUrl}">#{fileItem.boname} (#{fileItem.linkTarget.mediaType})</h:outputLink>

sourceUrl 的值类似于/dir/subDir/file.pdf. 当我的 sourceUrl 不包含空间时,它就可以工作。但是当它包含空间时,它们被替换为+. /dir/subDir/big file.pdf成为/dir/subDir/big+file.pdf. 当我用+普通浏览器中的空格替换它时,它可以工作吗?

出了什么问题,我该如何解决?

我在 mojarra 的图形图像中遇到了同样的问题,我通过使用 Primefaces 的图形图像来解决。

4

1 回答 1

2

一般来说,我不建议在 url 中使用空格。

如果您对 url 中的文件名没有影响,您应该按照URL-Encoding中的描述对这些名称进行 url-encode 。空格必须替换为 %20。也许有一个 java 类可以为您进行编码。我只从 PHP 中知道,那里有一个像 urlEncode() 这样的函数。

于 2011-02-24T20:29:28.013 回答