如何从JSF 2.0应用程序中的html链接到本地​​磁盘上的文件

时间:2012-11-17 17:30:47

标签: jsf-2

我使用tomcat 7.0和eclispe WTP插件。我无法在本地磁盘上引用文件。 <h:graphicImage value="C:/tmp/someFile.png"/>

我尝试通过添加位置C来解决它:\ Program Files(x86)\ apache-tomcat-7.0.32 \ webapps 目录tmp /并使用<h:graphicImage value="/tmp/someFile.png"/>

我也试过从eclipse添加到tomcat文件:server.xml <Context docBase="C:/tmp" path="/tmp" />

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>

  <Context docBase="myProjectName" path="/myProjectName" reloadable="true" source="org.eclipse.jst.jee.server:myProjectName"/>
  <Context docBase="C:/tmp" path="/tmp" /></Host>

以相同的方式引用文件<h:graphicImage value="/tmp/someFile.png"/>

结果我有HTTP状态404.说明请求的资源不可用。

我该如何解决? 谢谢

2 个答案:

答案 0 :(得分:1)

<h:graphicImage>会自动在URL中添加当前webapp的上下文路径。如果您已经在webbrowser的内置webdeveloper工具集中查看了生成的HTML输出和/或HTTP流量监视器,那么您已经注意到了它。

只需使用纯HTML <img>元素。

<img src="/tmp/someFile.png" />

答案 1 :(得分:0)

“webapp”目录在部署时充当应用程序的根目录(理想做法)。因此,如果您使用path(url)"/tmp/someFile.png" 来访问文件someFile.png,那么您必须将文件放在 "/src/main/webapp/tmp/someFile.png"中,并在部署之后将“webapp”的内容放入应用程序的根目录中。 / p>

所以基本上只需确保“tmp”在你的应用程序根目录中。

如果要使用文件系统。您可以看到此答案here