2014-01-31 99 views
0

我有一个命令进行对话,而这也正是我想要做的事:Primefaces标签正确

  1. 做一些Java的工作
  2. 更新Primefaces标签
  3. 让我的对话盒子消失
  4. 转到某个标签。

这是我使用的代码:

   <p:commandButton value="Submit" 
       action="<some java work>" 
       oncomplete="dialogue.hide(); sideTabs.select(1)" 
       update="<update side tab"> 
      </p:commandButton> 

的问题是,这只是刷新之间工作一次。我的意思是,我点击按钮,一切正常 - 标签更改为请求的标签,标签更新,对话消失。但是当我再次单击按钮时,请求的选项卡确实被选中,但在我按f5之前没有正确刷新。一旦我这样做了,我可以再次单击对话按钮,该选项卡将再次正确刷新,但再一次,只有一次 - 直到我再次击中f5。所以,这样的事情:

  1. 点击按钮 - >见1项的标签
  2. 再次单击该按钮 - >仍然可以看到在标签
  3. 按F5只有1项 - >见2项在标签
  4. 点击按钮 - >查看选项卡
  5. 3项再次点击该按钮 - >仍然可以看到在标签3项
  6. 按F5 - >查看选项卡 等4项.. 。

有没有人有一个想法,为什么发生这种情况?我是否需要添加一些页面刷新机制到我的commandButton?如果是这样,这是如何完成的? 谢谢!

回答

1

我试图复制这个问题没有成功。

这里是我的ViewScoped豆一属性:

private String str1 = "a"; 

private String str2 = "b"; 

private String update = ":f:t"; 

private Integer index = 0; 

这里是视图:

<h:form id="f"> 
    <p:tabView id="t" widgetVar="tVar" activeIndex="#{viewMBean.index}" > 
     <p:tab id="a" title="A" > 
      #{viewMBean.str1} 
     </p:tab> 
     <p:tab id="b" title="B"> 
      #{viewMBean.str2} 
     </p:tab> 
    </p:tabView> 
</h:form> 

<p:dialog id="d" widgetVar="dVar"> 
    <h:form> 
     <p:inputText value="#{viewMBean.str1}" /> 
     <br /> 
     <p:inputText value="#{viewMBean.str2}" /> 
     <br /> 
     <p:inputText value="#{viewMBean.update}" /> 
     <br /> 
     <p:inputText value="#{viewMBean.index}" /> 
     <br /> 
     <p:commandButton value="Submit" update="#{viewMBean.update}" oncomplete="dVar.hide();" /> 
    </h:form> 
</p:dialog> 

我相信这个问题是在你的代码别的地方。

+0

问题确实在别处。谢谢您的帮助 :) –