JSF的问题和建议

时间:2011-01-26 21:22:16

标签: jsf jsf-2

我正在做一个JSF2项目。我使用mojarra 2.x,PrimeFaces 2.2RC2,Tomcat 6.x和Google Guice。

  1. 目前我使用commandlink浏览我的网站,因此每次我想重新加载时,导航器会要求重新提交值。我在网上看到可以重定向。使用outputlink或commandlink进行导航会更好吗?

  2. 很多时候我使用带有这样的参数的动作:

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

    这好还是坏?

  3. JSF中是否存在一些用于命名操作,属性的约定?或者你的惯例是什么?

  4. 当我写一个xhtml页面时,最好只使用组件还是只在必要时?

    实施例

    #{bean.foo}
    

    <h:outputText value="#{bean.foo}" />
    
  5. 使用<c:if>之类的JSTL标签怎么样?我使用了一些,因为我在恢复视图时使用<ui:fragment rendered="">时遇到了一些问题。

1 个答案:

答案 0 :(得分:4)

  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. 我不会那么在乎,例如ProductManagerProductControllerProducts等等,只要从视图方面尽可能自我记录。即不是#{pc.submit}#{pd.column1},而是#{products.find}#{product.name}

  4. 在Facelets中,两者同样有效。两者都是XML转义的。 <h:outputText>仅具有以下优势:UIViewRoot可以轻松访问,并添加styleClassidrendered等属性

    < / LI>
  5. 只要您想要控制视图的构建方式,而不是视图的呈现方式,就可以使用它,那就完全没问题了。请注意,那些http://java.sun.com/jstl/core标签由Facelets本身提供,而不是由好的'JSP JSTL JAR'(在taglib URI中有/jsp)提供。

  6. 相关