2012-02-27 4 views
0

Не могли бы вы найти какие-либо проблемы с моим кодом ниже? Вызывается действие deleteInfectionLink, но сначала необходимо установить свойство infectedLinkToDelete. Однако это никогда не называется.a4j: actionparam assignTo не уволен

<rich:contextMenu attachTo="#{barmodel.id}" event="oncontextmenu" submitMode="ajax" style="z-index:9999;"> 
     <rich:menuGroup value="#{messages['iov.delete_link_with']}"> 
      <rich:menuItem submitMode="server"> 
       <a4j:repeat value="#{barmodel.infection.infectionsSinglemedicationhistories.toArray()}" var="infLink"> 
        <a4j:commandLink ajaxSingle="true" immediate="true" action="#{historyLinkController.deleteInfectionLink()}"> 
         <a4j:actionparam assignTo="#{historyLinkController.infectionLinkToDelete}" name="linkToDelete" value="#{infLink.id}" /> 
         <h:outputText value="#{infLink.singlemedicationhistory.startDate}" > 
          <f:convertDateTime pattern="MM/dd "/> 
         </h:outputText> 
         <h:outputText value="#{infLink.singlemedicationhistory.name}" /> 
        </a4j:commandLink><br /> 
       </a4j:repeat> 
      </rich:menuItem> 
     </rich:menuGroup> 
</<rich:contextMenu> 

infLink.id свойство является объектом следующего класса

@Embeddable 
public class InfectionsSinglemedicationhistoryId 
    implements 
     java.io.Serializable { 

    private long infectionid; 
    private long therapyid; 

    //getters and setters 
} 

ответ

1

Я не знаю, почему ваша actionParam не будучи назначенным, но это может быть проще просто изменить deleteInfectionLink() для передачи в infectionid значение, которое вы хотите удалить:

<a4j:commandLink ajaxSingle="true" immediate="true" action="#{historyLinkController.deleteInfectionLink(infLink.id)}"> 
     <h:outputText value="#{infLink.singlemedicationhistory.startDate}" > 
       <f:convertDateTime pattern="MM/dd "/> 
     </h:outputText> 
     <h:outputText value="#{infLink.singlemedicationhistory.name}" /> 
</a4j:commandLink> 
+0

Thanks Mike! Это действительно так! – gadeynebram