p:commandLink操作不会触发

时间:2014-05-14 07:17:11

标签: java jsf jsf-2 primefaces commandlink

p:commandLink操作不会触发我的视图bean。我尝试过很多东西,但是我没有实现:((应该有一个简单的问题。如果你能帮助我,我将不胜感激。

<p:dataTable var="message" value="#{messagesView.dataModel}"
     id="messageDt" emptyMessage="#{msg['kayitBulunamadi']}"
     lazy = "true" paginator="true" rows="10" 
        paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
        rowsPerPageTemplate="10,15,30" currentPageReportTemplate="{currentPage} / {totalPages}">

 <p:column styleClass="min-image">
        <f:facet name="header">
           <h:outputText value="Durum" />
        </f:facet>
        <p:commandLink ajax="true" process="@this"
           action="#{messagesView.selectedMessages(message)}"
           oncomplete="PF('msjDialog').show();">
           <!--<p:graphicImage  value="#{message.mesajDurumu=='NEW'?'/images/DealerNewMessages.png':'/images/DealerReadMessage.png'}" style="width: 60px; height: 60px;" />-->
           <p:graphicImage rendered="#{message.mesajDurumu=='REP'}"
              value="/images/email-send.png" style="width: 30px; height: 30px;" />
           <p:graphicImage rendered="#{message.mesajDurumu=='NEW'}"
              value="/images/DealerNewMessages.png"
              style="width: 30px; height: 30px;" />
           <p:graphicImage
              rendered="#{message.mesajDurumu!='REP' and message.mesajDurumu!='NEW'}"
              value="/images/DealerReadMessage.png"
              style="width: 30px; height: 30px;" />
        </p:commandLink>
     </p:column>

Bean代码:

public void selectedMessages(DealerMessages msj) {
  SELECTedMessage = msj;
  oncekiMesajiAl();
  UpdateMessageStatusRead(msj);
 }

3 个答案:

答案 0 :(得分:5)

<p:commandLink>必须嵌套在<h:form>内才能正常使用。

答案 1 :(得分:1)

您是否尝试使用:

actionListener="#{messagesView.selectedMessages(message)}"

而不是

action="#{messagesView.selectedMessages(message)}"

答案 2 :(得分:1)

也许试试这个:

<p:commandLink ajax="true" process="@this"
           action="#{messagesView.selectedMessages}"
           oncomplete="PF('msjDialog').show();"> 

获取值为:

... value = "#{messagesView.message} ....

MessagesView Bean代码:

public void selectedMessages() {
  SELECTedMessage = getMessage();
  oncekiMesajiAl();
  UpdateMessageStatusRead(SELECTedMessage);
 }

这样做是通过元素的值在bean上设置变量。但是,你需要使用getter和setter在bean中创建一个字段变量;否则这将无效。