0

私は過去にこれを機能させたことがあると確信していますが、今日は機能したくありません。

例:

@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() 呼び出しでの null ポインター例外 - @Inject が設定していませんでした。

4

1 に答える 1

1

別の投稿で回答が見つかりました: ManagedProperty が @FacesConverter に挿入されていません

私は @Inject を使用しており、注入された JPA リポジトリは Spring によって管理されているため、@Component("itemConverter"), @Scope("session")代わりに使用する必要があり@ManagedBeanました。

于 2012-05-19T02:28:35.713 に答える