JSF 2.2:使用<h:link>导致页面(重新)加载缓慢

时间:2016-06-25 09:07:22

标签: jsf-2.2 tomcat8 mojarra

我有一个带有纯页面到页面导航的导航列表:

<h:link outcome="/admin/products"> Products </h:link>
<h:link outcome="/admin/users"> Users </h:link>
<h:link outcome="/admin/markets"> Markets </h:link>

我第一次打电话给一个页面,一切都很顺利。使用ViewScoped-Beans的目标页面上的内容如下所示:

@ManagedBean
@ViewScoped
public class ProductBean {

   private List<Products>products;
   private int total = 0;

   @PostConstruct
   public void init(){
     this.products = Products.getAll();  
   }  

   public void newProduct(){   
      this.total++;
   }       

   public Integer getTotal(){
      return total;
   }
}

products.xhtml

<h:form id="productForm" prependId="false">

   <h:commandLink value="Add Product" actionListener="#{bean.newProduct}">                             
      <f:ajax render="productsBox" />                                
  </h:commandLink>                            

  <h:panelGroup id="productsBox">
        <h:outputText value="#{bean.total}"/>
  </h:panelGroup>

</h:form>

在其中一个页面上触发操作,然后当我点击&#34;产品&#34;再次或使用F5重新加载页面,或者换句话说,在调用ProductBean的init()之前花了很长时间,即使我将所有逻辑分解为像这里这样的最小设置。

这种行为似乎是某种未定义的。有时页面重新加载只是慢一点,然后很慢或页面加载只是挂起。

注意:当我用h:commandLink action =&#34; / admin / products&#34;替换h:link时 一切正常,#34;正常&#34;。但正如我所知,这里不需要commandLink。

我能做什么或出什么问题?

使用jsf 2.2和mojarra 2.2.12和tomcat 8

提前感谢。

1 个答案:

答案 0 :(得分:0)

似乎不是我的代码的一般问题。这只发生在firefox中,是由Firebug Add-on引起的。我没有在那里找到任何特定的设置,即使重新添加或重置插件也没有解决问题。但是当萤火虫停用时它会起作用。