0

なぜ最初のコードが機能し、他のコードが機能しないのか、誰かが私に説明できますか?

働く:

<h:commandButton value="#{settingsBean.tmp}" action="editverteilerliste">
    <f:setPropertyActionListener target="#{settingsEditVerteilerlisteBean.aktuelleVerteilerliste}" value="#{settingsBean.tmp}" />
</h:commandButton>

動作しない:

<p:commandLink action="editverteilerliste">
    <f:param name="aktuelleVerteilerliste" value="#{settingsBean.tmp}" />
    <h:outputText value="asdf"/>
</p:commandLink>

settingsBean.tmp は Verteilerliste のインスタンスです

アクション editverteilerliste は、settingsEditVerteilerlisteBean を使用している別のページにつながります。

@ManagedBean
@RequestScoped
public class settingsEditVerteilerlisteBean implements Serializable {

  private Logger logger = Logger.getLogger(settingsEditVerteilerlisteBean.class);

  public settingsEditVerteilerlisteBean() {
  }

  @PostConstruct
  public void init() {
    logger.info("Postconstructor invoked!");
  }

  @ManagedProperty(value = "#{aktuelleVerteilerliste}")
  private Verteilerliste aktuelleVerteilerliste;

  [Getter and Setter...]
}

2 番目のページ:

<h:body>
    <ui:composition template="../template/mainlayout.xhtml">
        <ui:define name="content">
            <h3>Verteilerliste <h:outputText value="#{settingsEditVerteilerlisteBean.aktuelleVerteilerliste.name}"/></h3>
        </ui:define>
    </ui:composition>
</h:body>

機能しているものを使用できることはわかっていますが、2番目のものが機能しない理由を理解したいです!

4

1 に答える 1