JSF / Primefaces Link 到文件系统

JSF / Primefaces Link to Filesystem

我有一个 WebApplication,我必须在其中提供对客户端已安装网络驱动器的直接访问(例如 \server\zentrale 映射到驱动器 Z:\)。

我尝试了以下,但没有任何效果:

<a target="_blank" href="file:///server/zentrale/username/data">user files</a>
<h:outputlink target="_blank" value="file:///server/zentrale/username/data">user files</a>

<a target="_blank" href="file:///Z:/username/data">user files</a>
<h:outputlink target="_blank" value="file:///Z:/username/data">user files</a>

我还在 jboss-web.xml 中添加了 <disable-cross-context>false</disable-cross-context> - 但没有成功。

@BalusC 在JSF 2 and a link to file system 中提到创建一个新的 webapp 上下文。 那么,我如何使用 WildFly 10 和 Primefaces 6.1 做到这一点?

在我们的 WebApplication 的旧版本中,我们使用了 Firefox 的 IE View 插件,但这是 2013 年的最后一次更新!因为我们要支持其他浏览器,比如Chrome和IE,我们不想依赖一些浏览器插件!

https://developer.jboss.org/thread/227893中我找到了一个提示,如何在服务器端访问本地文件系统。

standalone.xml

<subsystem xmlns="urn:jboss:domain:undertow:3.0">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener name="default" socket-binding="http" redirect-socket="https"/>
            <host name="default-host" alias="localhost">
                <location name="/" handler="welcome-content"/>
                <location name="documents" handler="document-handler"/>
                <filter-ref name="server-header"/>
                <filter-ref name="x-powered-by-header"/>
            </host>
    </server>
    <handlers>
        <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
        <file name="document-handler" directory-listing="true" path="\server\Zentrale\docments"/>
    </handlers>
</subsystem>

要使用 jboss-cli.sh 实现此目的,请使用以下命令:

/subsystem=undertow/server=default-server/host=default-host/location=documents:add(handler=document-handler)
/subsystem=undertow/configuration=handler/file=document-handler:add(path=\\server\Zentrale\documents, directory-listing=true)

单击 page.xhtml 中的每个 link 将在浏览器中打开一个新选项卡,我可以在其中浏览服务器的文件系统 - 甚至是共享文件夹!

page.xhtml

<a href="/documents/projects/project_4711/" target="_blank">Project 4711</a>
<h:outputLink value="/documents/projects/project_4711/" target="_blank">Project 4711</h:outputLink>

这是我的问题的解决方案,但是是的 - 它不允许我在客户端本地文件系统上导航!