/ / JSF2 Spring3 integracja - wiosna, jsf, jsf-2

Integracja JSF2 Spring3 - wiosna, jsf, jsf-2

@ManagedBean(name="helloBean")
@SessionScoped
public class HelloBean implements Serializable {
@Inject
@Named("loginService")
LoginService loginService;

private String name;

public String getName() {
return name+"-->"+loginService.serviceDetails();
}

public void setName(String name) {
this.name = name;
}
}

...

    @Named("loginService")
public class LoginServiceImpl implements LoginService {

public String serviceDetails() {
return "==From Service==";
}
}

Plik ApplicationContext.xml:

<beans
<context:component-scan base-package="com.myapp"/>
</beans>

Otrzymuję wyjątek wskaźnika pustego dla usługi loginService przy powrocie name+"-->"+loginService.serviceDetails();

1) Jak mogę rozwiązać powyższy problem

2) zamiast @ManagedBean(name="helloBean") mogę uzyć @Inject? jak to zrobić?

Odpowiedzi:

0 dla odpowiedzi № 1

Nie sądzę, że możesz z tego skorzystać @ManagedBean i wiosną w tym samym czasie. Jeśli chcesz, aby twoje fasole były zarządzane wiosną, musisz użyć wiosna ELResolver (w faces-config.xml), a następnie użyj @Named i @Scope("session") na fasoli JSF. Wtedy możesz (i musisz) użyć @Inject zamiast @ManagedX

I jako sidenote - unikaj odwoływania się do non-jsffasola po nazwie - polegaj tylko na ich typie - przynajmniej zaoszczędzi ci bólów głowy przy refaktoryzacji. A dla fasoli JSF możesz polegać na domyślnym nazewnictwie i użyciu @Named bez argumentów.