自动连接服务在jsf Converter中为空

You*_*raf 1 jsf spring primefaces

我无法在jsf转换器中使用@Autowired注入服务:

转换器:

@Component("advertiserConverter")
@FacesConverter("advertiserConverter")
public class AdvertiserConverter implements Converter , Serializable {

 @Autowired
 private IAdvertiserService advertiserService;

 public Object getAsObject(FacesContext context, UIComponent component, String value) {
    if (value == null || value.length() == 0) {
        return null;
    }
    Long id = Long.parseLong(value);
    return advertiserService.findAdvertiser(id);
 }

 public String getAsString(FacesContext context, UIComponent component, Object value) {
    return value instanceof Advertiser ? ((Advertiser) value).getId().toString() : "";
 }
}
Run Code Online (Sandbox Code Playgroud)

applicationContext.xml中:

<context:annotation-config />
<context:component-scan base-package="com.test.example"/>
<tx:annotation-driven />
Run Code Online (Sandbox Code Playgroud)

服务:

@Service
@Transactional
public class AdvertiserServiceImpl implements IAdvertiserService {

}
Run Code Online (Sandbox Code Playgroud)

You*_*raf 8

最后我找到了解决方案:

转换器:

@Service
public class AdvertiserConverter implements Converter{
Run Code Online (Sandbox Code Playgroud)

XHTML:

converter="#{advertiserConverter}"
Run Code Online (Sandbox Code Playgroud)

代替

converter="advertiserConverter"
Run Code Online (Sandbox Code Playgroud)