Вопросы и советы JSF
Я делаю проект JSF2. Я использую mojarra 2.x, PrimeFaces 2. 2RC2, Tomcat 6.x и Google Guice.
-
На данный момент я использую commandlink для навигации по моему сайту, поэтому каждый раз, когда я хочу перезагрузить, навигатор запрашивает значение resubmit. Я вижу в сети, что его можно перенаправить. Лучше ли использовать outputlink или commandlink для навигации?
-
Много раз я использую действие с таким параметром:
<:commandlink action="#{bean.doSomething(item)}" />Это хорошо или плохо ?
-
Есть ли в JSF какие-то соглашения для именования действий, свойств? Или каков ваш съезд?
-
Когда я пишу страницу xhtml, лучше ли использовать только компоненты или только в случае необходимости ?
Пример
#{bean.foo}Или
<h:outputText value="#{bean.foo}" /> -
Как насчет использования тегов JSTL, таких как
<c:if>? Я использую некоторые, потому что у меня были некоторые проблемы, когда я использую<ui:fragment rendered="">во время восстановления вида.
1 ответ:
<h:commandLink>запускает запрос POST. Это не имеет смысла для межстраничной навигации. Это не дружественный к пользователю или SEO дружественный. Просто используйте<h:outputLink>,<h:link>или даже<a>, который запускает простой запрос HTTP GET.Если
itemуже присутствует в экземпляре позади#{bean}, то в этом нет необходимости. Если нет, то все в полном порядке. Вам только нужно иметь в виду, что ваш код таким образом больше не обратно совместим на контейнерах сервлета 2.5, в то время как сам JSF 2.0 обратная совместимость на сервлете 2.5. Это именно функция сервлета 3.0 / EL 2.2 (я только удивляюсь, как вы заставляете его работать на Tomcat 6. Разве вы не используете в Tomcat 7 или вы используете от JBoss Эль?).Мне было бы все равно, например.
ProductManager,ProductController,Products, и т. д., Пока это как можно больше самодокументируется со стороны зрения. То есть не#{pc.submit}или#{pd.column1}, а#{products.find}и#{product.name}.В Facelets оба одинаково действительны. Оба являются XML-экранированными. У
<h:outputText>Есть только преимущество в том, что он позволяет легко получить доступ с помощьюUIViewRootи добавления атрибутов, таких какstyleClass,id,rendered, и т.д.Пока вы используете его только тогда, когда хотите управлять тем, как создается представление, а не тем, как оно визуализируется, это совершенно нормально. Обратите внимание, что эти теги
http://java.sun.com/jstl/coreпредоставляются самими Facelets, а не хорошими JSP JSTL JAR (который имеет/jspв TAGLIB URI).Связанные