2013-04-03 45 views
0

我想注入@ManagedProperty(value =「#{ticketDataBean}」)。我能夠做到這一點,但現在我已經宣佈了一個構造函數,從那以後它失敗了。請指導。 我的代碼片斷無法注入託管屬性與構造函數

@ManagedProperty(value = "#{ticketDataBean}") 
private TicketDataBean ticketDataBean; 


    public class TicketDataBean extends CreateTicketData implements Serializable { 
    private static final long serialVersionUID = 1L; 
private String category; 
private TicketingService service; 
private static final transient Logger LOGGER = LoggerFactory.getLogger(TicketDataBean.class); 

public TicketDataBean(final TicketingService service) { 

    final net.atos.portlet.ticketing.model.UserInfo originalUser; 
    this.service = service; 
    originalUser = service.getDefaultReceiver(); 
    receiverId = originalUser != null ? originalUser.getId() : null; 
    LOGGER.info("Reciever id in ticketdatabean---->" + receiverId); 
} 
+0

什麼是TicketingService?它是一個'EJB'還是另一個'ManagedBean'? –

回答

0

託管bean是POJO因此他們需要有非參數構造函數。如果你想初始化service你可以在@PostConstruct。更好的辦法是爲service創建另一個ManagedBean,您可以注入或者創建@Singleton

@ManagedBean 
@ApplicationScoped 
public class TicketingService { 
} 

,那麼你可以用這種方式注入它(不要忘了添加的getter/setter TOR吧)

@ManagedProperty(value="#{ticketingService}") 
private TicketingService service; 

你可以閱讀更多關於ManagedBeanshere