Я пытаюсь интегрировать Plupload с JSF максимально независимым способом, для этого я создал составной компонент.
Чтобы использовать Plupload на моей странице JSF, я просто вызываю:
<comp:plupload ... value=#{MyBean.files} />
Где MyBean.files - список.
Когда я добавляю файлы в компонент Plupload и нажимаюКнопка «Начать загрузку» Я хочу, чтобы он загрузил все во временную папку и заполнил объект, указанный в «значении» моего составного компонента, этими свойствами файлов (например, путем).
Для загрузки файлов яЯ использую сервлет, он не имеет ничего общего с JSF, он отлично работает для первой части: он загружает все во временную папку.Моя проблема - вторая часть, я провел много исследований, но не могу найти способ передать атрибут «значение» в моем составном компоненте JSF моему сервлету.
Plupload использует javascript для настройки всегозапрос будет отправлен по URL-адресу, указанному в атрибуте "url" в следующем коде:
<composite:interface>
...
<composite:attribute name="value" required="true" />
</composite:interface>
<composite:implementation>
...
<script type="text/javascript">
// Convert divs to queue widgets when the DOM is ready
$(function() {
$("#uploader").pluploadQueue({
// General settings
runtimes : '#{cc.attrs.runtimePreferences}',
url : '/plupload',
max_file_size : '#{cc.attrs.maxFileSize}',
...
});
});
</script>
<div id="uploader">
<p><h:outputText value="Your browser does not support this." /></p>
</div>
</composite:implementation>
Я указал "/ plupload" в качестве URL-адреса, это URL моего сервлета (в web.xml).
Я могу подумать о двух возможных решениях:
Продолжить использовать этот сервлет, который полностью независим от FacesServlet, и найти способ передать атрибут "значение" вмой составной компонент в качестве атрибута запроса для моего сервлета.Но как я могу это сделать?
Прекратить использовать новый сервлет, я не должен этого делать, поскольку я использую JSF, все должно обрабатываться FacesServlet.Вместо того, чтобы использовать новый сервлет, я мог бы создать ManagedBean.Внутри этого управляемого элемента я мог создать метод и восстановить HttpRequest и HttpResponse.Проще связать мой CompositeComponent с методом, который обрабатывает загрузку, если это управляемый компонент.Проблема: Как я могу ссылаться на метод managedBean через URL?Я все еще должен заполнить атрибут «URL» в коде JavaScript.Есть ли что-то вроде "/ face / MyBean? Action = 'myMethod ()'?
Заранее спасибо за любой ответ;)