I'm trying to inject a ManagedBean in my FacesConverted the following way:
@ManagedBean @RequestScoped @FacesConverter(forClass = Group. class ) public class GroupConverter implements Converter { @ManagedProperty( "#{groupService}" ) private GroupService groupService; @Override public Group getAsObject(FacesContext context, UIComponent arg1, String groupName) { return groupService.findGroupByName(groupName); } @Override public String getAsString(FacesContext arg0, UIComponent arg1, Object group) { return ((Group) group).getName(); } public GroupService getGroupService() { return groupService; } public void setGroupService(GroupService groupService) { this .groupService = groupService; } }
The problem is that groupService isn't being injected and I get a NullPointerEx. Shouldn't it be autowired automatically since it's also a ManagedBean? It all works when I change "getAsObject" to "return new Group();" obviously.
Any ideas?
?
The solution:
It is likely that you are not resolving the managed bean name .
@ManagedBean(name = "myConverter")
@RequestScoped
@FacesConverter(value = "myConverter")
public class MyConverter implements Converter {
?
For example, consider these two components:
<h:inputText converter="myConverter" value="#{foo.prop}" />
<h:inputText converter="#{myConverter}" value="#{bar.prop}" />
?
When the converter is set on the first component, it will be created by Application.createConverter . A converter is not a managed bean . The same rules apply if you match a converter by type .
In the second component, a value expression is used to return a class that implements
Converter
. This uses the usual managed bean mechanisms. In this case, the
@FacesConverter
annotation is irrelevant.
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
