我确信我过去有这个工作,但它今天不想工作。
示例:
@FacesConverter(value = "inputConverter")
public class InputConverter implements Converter {
private InputRepository inputRepository;
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
List<Input> allInputs = inputRepository.findAll();
for(Input input : allInputs) {
if(input.getInputName().equals(arg2)) {
return input;
}
}
return null;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
Input input = (Input) arg2;
return input.getInputName();
}
public InputRepository getInputRepository() {
return inputRepository;
}
@Inject
public void setInputRepository(InputRepository inputRepository) {
this.inputRepository = inputRepository;
}
}
结果:
itemRepository.findAll()调用上的空指针异常 - @Inject没有设置它。
答案 0 :(得分:1)
在另一篇文章中找到答案:ManagedProperty not injected in @FacesConverter
当我使用@Inject并且注入的JPA存储库由Spring管理时,必须使用@Component("itemConverter"), @Scope("session")
而不是@ManagedBean
。