2009-12-26 4 views
2

Кто-нибудь знает какие-либо хорошие ресурсы для компонентов JSF 2.0? Я пытаюсь разработать компонент загрузки файлов, чтобы научить себя JSF 2.0 и Servlet 3.0, но мне трудно найти ресурсы. Я смотрю на источник Mojarra 2.0.2, но похоже, что многие из них все еще используют концепции JSF 1.x. Любое понимание очень ценится.Компоненты JSF 2.0

+0

Я думаю, что мне нужны стандартные компоненты JSF, а не составные компоненты. Может ли кто-нибудь подтвердить это для меня? – anthonator

+0

Композитные компоненты состоят из стандартных компонентов с целью устранения необходимости повторять один и тот же набор компонентов снова и снова.Стандартная реализация JSF не имеет стандартного компонента для загрузки файлов. – BalusC

+0

Хорошо, это то, о чем я думал, но я не был полностью уверен. Спасибо за разъяснения. – anthonator

ответ

7

На прошлой неделе на форуме Sun кто-то опубликовал пример пользовательского компонента загрузки файлов JSF 2.0, но он создан на Apache Commons FileUpload API, и в коде есть кое-какие недостатки, но может быть достаточно информации начать с. Будьте осторожны, хотя некоторые из этих недостатков серьезны: JavaServer Faces - Creating JSF 2.0 File Upload Component

По совпадению, в последнее время я также играл с идеей вокруг компонента загрузки файлов JSF 2.0 в сочетании с новой поддержкой сервлетов 3.0 для новой статьи на моем блог. Трудно понять, что такое лучший способ создания пользовательского компонента JSF 2.0 (@FacesComponent), Google показывает немного, только this blog of Jim Driscoll несколько полезен. Кроме того, это объясняется в учебнике Java EE 6, и даже спецификация JSF 2.0 ничего об этом не говорит.

Update: Я получил его на работу, но есть один из основных недостатков: я не могу использовать Servlet 3.0 @MultipartConfig аннотацию, чтобы указать место загрузки и максимальный размер файла. Это активируется, только если установлено на Servlet, а не на Filter. Поскольку FacesServlet объявлен final, и JSF не предоставляет никаких средств для обработки запроса до FacesServlet, я не вижу каких-либо чистых способов использования аннотации. Обычно местоположение загрузки должно быть сконфигурировано в аннотации, но это легко устранить, используя Part#getInputStream() вместо Part#write(). Максимальный размер файла никоим образом не настраивается без аннотации, поэтому вам придется жить с «неограниченными загрузками по размеру» и тем фактом, что вы можете проверить его только после завершения загрузки (что, с другой стороны, может быть преимуществом , потому что конечный пользователь в противном случае сталкивался бы с уродливой ошибкой HTTP 500).

Update 2:: вот блог: http://balusc.blogspot.com/2009/12/uploading-files-with-jsf-20-and-servlet.html Надеюсь, что это помогает :)

0

Стандартные компоненты JSF не включают в себя компонент загрузки файлов. Этот компонент обычно предоставляется в сторонних библиотеках компонентов JSF, таких как myfaces, icefaces и т. Д.

На данный момент я не знаю ни одной из составных библиотек JSF 2.0, которые еще готовы (кроме спецификации стандарт), поэтому я не знаю о каких-либо компонентах загрузки файлов, готовых JSF 2.0.

2

Я очень рекомендую взглянуть в PrimeFaces: http://primefaces.org/

Он представляет собой набор компонентов, построенный для JSF (и особенно поддерживает JSF 2.0) под лицензией с открытым исходным кодом, использует YahooUI под обложками и поддерживает также сценарий загрузки файлов.

+1

Я использую персидсы с довольно хорошим успехом в jsf 2, но компонент загрузки шаткий. Вы можете посмотреть обсуждения на форумах http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=2626&p=12545&hilit=fileupload#p12545 http://primefaces.prime.com.tr /forum/viewtopic.php?f=3&t=2227&p=12469&hilit=fileupload#p12469 Так что, хотя вы можете использовать перформансы для других материалов jsf2, вам, вероятно, придется искать в другом месте для компонента загрузки. – digitaljoel

Смежные вопросы