我正在使用 JSF 2 和 Sprig 3,我想从使用 faces-config.xml 迁移到注释。
旧的:faces-config.xml:
<managed-bean>
<managed-bean-name>banqueBean</managed-bean-name>
<managed-bean-class>commun.BanqueBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>banqueService</property-name>
<value>#{banqueService}</value>
</managed-property>
<managed-property>
<property-name>banqueId</property-name>
<value>#{param.banqueId}</value>
</managed-property>
</managed-bean>
新的一个 :
public class BanqueBean{
private Banque banque;
@ManagedProperty(name = "banqueService", value = "#{banqueService}")
private BanqueService banqueService;
@ManagedProperty(value = "#{param.banqueId}")
private String banqueId;
// setters for banqueService and banqueId
banqueId 的值使用以下方式设置:
<f:param value="#{banque.id}" name="banqueId" />
问题是当使用 faces-config.xml 时,“系统”在参数 banqueId 的设置器之前调用 banqueService 的设置器,这样我就可以在 setBanqueId 方法中使用 banqueService。
使用注释时,它会在 banqueService 之前调用 banqueId 的设置器,以便我将 null 作为它的值。
为什么它反转了这两个方法的调用?