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);
}
4

1 回答 1

0

托管 bean 是 POJO,因此它们需要具有非参数构造函数。如果要初始化service,可以在@PostConstruct. 更好ManagedBean的是创建另一个service您将能够注入或创建@Singleton的 .

@ManagedBean
@ApplicationScoped
public class TicketingService {
}

然后你可以用这种方式注入它(不要忘记添加getter/setter to it)

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

ManagedBeans 您可以在此处阅读更多信息。

于 2013-04-03T07:22:07.423 回答