我正在尝试注入@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 :(得分:0)
托管bean是POJO,因此它们需要具有非参数构造函数。如果您要初始化service
,可以在@PostConstruct
中执行此操作。最好为ManagedBean
创建另一个service
,您可以注入,或者可以创建@Singleton
。
@ManagedBean
@ApplicationScoped
public class TicketingService {
}
然后你可以用这种方式注入它(不要忘记添加getter / setter)
@ManagedProperty(value="#{ticketingService}")
private TicketingService service;
您可以详细了解ManagedBeans
here。