a4j: actionparam assignTo не запускается - PullRequest
0 голосов
/ 27 февраля 2012

Кто-нибудь найдет какие-либо проблемы с моим кодом ниже? Вызывается действие deleteInfectionLink, но сначала должно быть установлено свойствоfectionLinkToDelete. Однако это никогда не называется.

<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 Ответ

1 голос
/ 27 февраля 2012

Я не уверен, почему ваш 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>  
...