我正在使用Mojarra,PrimeFaces和Tomcat 6.x开发JSF 2.0项目。
我创建了一些指向文件的outputlink。这些文件在我的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
。当我在普通的webbrowser中用空格替换+
时,它有用吗?
出了什么问题,如何解决?
我遇到了与mojarra的graphicImage相同的问题,我使用Primefaces的graphicImage解决了这个问题。
答案 0 :(得分:2)
一般情况下,我不建议在网址中使用空格。
如果您对网址中的文件名没有影响,则应按照此处URL-Encoding所述对这些名称进行网址编码。空格必须由%20替换。也许有一个java类为你做编码。我只从PHP知道它,你有一个像urlEncode()的函数。