Я изучил код BalusC для пользовательского сервлета загрузки по абсолютному пути (см. http://balusc.blogspot.com/2007/07/fileservlet.html#FileServletServingFromAbsolutePath).. Я не являюсь экспертом по Java для веб-разработчиков, поэтому я хотел бы, чтобы кто-нибудь смог объяснить мне эту часть кода
private String filePath;
// Actions ------------------------------------------------------------------------------------
public void init() throws ServletException {
// Define base path somehow. You can define it as init-param of the servlet.
this.filePath = "/files";
// In a Windows environment with the Applicationserver running on the
// c: volume, the above path is exactly the same as "c:\files".
// In UNIX, it is just straightforward "/files".
}
Когда вызывается метод init? Зачем нам нужно указывать filePath в методе init?
У меня есть XHTML (Mojarra + IceFaces) с чем-то вроде приведенного ниже кода, который прекрасно работает. На моей странице отсутствует только часть загрузки файла, на которую ссылается тег outputLink
<ice:tree id="tree"
value="#{treeBean.model}"
var="item"
hideRootNode="false"
hideNavigation="false"
>
<ice:treeNode>
<f:facet name="icon">
<ice:panelGroup style="display: inline">
<h:graphicImage value="#{item.userObject.icon}" />
</ice:panelGroup>
</f:facet>
<f:facet name="content">
<ice:panelGroup style="display: inline-block">
<ice:outputLink value="#{item.userObject.filePath}">
<ice:outputText value="#{item.userObject.fileName}"/>
</ice:outputLink>
</ice:panelGroup>
</f:facet>
</ice:treeNode>
</ice:tree>
В моем компоненте Backing у меня есть два поля fileName
(только имя файла с расширением, например, Image.jpeg) и filepath
(путь ABSOLUTE файла на сервере). Наконец я хочу скачать файл с пользовательским сервлетом, как я могу это сделать?
Приветствия,
UPDATE
Скажем, mi base-dir - /SRC
, и под этим каталогом у меня есть все мои страницы xhtml и WEB-INF и META-INF, и дополнительно у меня есть каталог с именем dataFiles в разделе dataFiles, который у меня есть следующая структура
--dataFiles
|----Enterprise1
| |--User1
| | |--goodFiles
| | | |--ok.txt
| | |--badFiles
| | |--bad.txt
| |--User2
| | |--goodFiles
| | | |--ok.txt
| | |--badFiles
| | |--bad.txt
|----Enterprise2
|--User1
| |--goodFiles
| | |--ok.txt
| |--badFiles
| |--bad.txt
|--User2
|--goodFiles
| |--ok.txt
|--badFiles
|--bad.txt
именно так я рендерил дерево с помощью IceFaces, и у меня просто есть имя файла в компоненте поддержки (т.е. ok.txt или bad.txt), но я не могу понять, как загрузить файл, указывающий по ссылке в дереве.