2012-02-27 51 views
0

有人会在我的代码下面发现任何问题吗?操作deleteInfectionLink被调用,但首先应该设置属性infectionLinkToDelete。然而,这从来没有被称为。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

谢谢迈克!它实际上是这样工作的! – gadeynebram 2012-03-01 13:47:26