JSF вопросы и советы - PullRequest
       3

JSF вопросы и советы

2 голосов
/ 27 января 2011

Я делаю проект JSF2.Я использую mojarra 2.x, PrimeFaces 2.2RC2, Tomcat 6.x и Google Guice.

  1. На данный момент я использую командную ссылку для навигации по своему сайту, поэтому каждый раз, когда я хочу перезагрузить,навигатор запрашивает повторную передачу значения.Я вижу в сети, что можно перенаправить.Лучше ли использовать выходную ссылку или командную ссылку для навигации?

  2. Много раз я использую действие с таким параметром:

    <:commandlink action="#{bean.doSomething(item)}" />
    

    Это хорошо или плохо?

  3. Есть ли в JSF некоторые соглашения для именования действий, свойств?Или каково ваше соглашение?

  4. Когда я пишу страницу в формате HTML, лучше ли использовать только компоненты или только когда это необходимо?

    Пример

    #{bean.foo}
    

    или

    <h:outputText value="#{bean.foo}" />
    
  5. Как насчет использования JSTL-тегов, таких как <c:if>?Я использую некоторые, потому что у меня были некоторые проблемы при использовании <ui:fragment rendered=""> во время восстановления вида.

1 Ответ

4 голосов
/ 27 января 2011
  1. <h:commandLink> запускает запрос POST. Это не имеет смысла для постраничной навигации. Это не удобно ни SEO, ни дружественно. Просто используйте <h:outputLink>, <h:link> или даже <a>, который запускает простой HTTP-запрос GET.

  2. Если item уже присутствует в экземпляре за #{bean}, то это не нужно. Если это не так, то это прекрасно. Вам нужно только помнить, что ваш код больше не обратно совместим с контейнерами Servlet 2.5, а сам JSF 2.0 обратно совместим с Servlet 2.5. Это, в частности, функция Servlet 3.0 / EL 2.2 (мне интересно только, как заставить его работать на Tomcat 6. Вы не используете Tomcat 7 или JBoss EL?).

  3. Мне было бы все равно, например, ProductManager, ProductController, Products и т. Д., Если это максимально возможное самодокументирование со стороны просмотра. То есть не #{pc.submit} или #{pd.column1}, но #{products.find} и #{product.name}.

  4. В Facelets оба одинаково действительны. Оба XML-экранированы. Преимущество <h:outputText> заключается в том, что он позволяет легко получить доступ к UIViewRoot и добавлять такие атрибуты, как styleClass, id, rendered и т. Д.

  5. Пока вы используете его только тогда, когда вы хотите контролировать, как строится представление, а не как визуализируется представление, это прекрасно. Обратите внимание, что эти теги http://java.sun.com/jstl/core предоставляются самими Facelets, а не добрыми JAR JSTL JSP (в которых есть /jsp в taglib URI).

Относящиеся

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...