Jsf 2 未创建CDI对话实例
我正在尝试开发一个web应用程序,在这个应用程序中,我需要对话范围在多个使用Primefaces 3.5的xhtml页面中使用相同的字符串值进行对话 当我使用conversation.begin开始对话时,它抛出null指针异常,对话为null 我知道我无法使用“new”创建对话实例。但我不知道我错在哪里,为什么它会变成空的 请导游 调用bean方法的xhtml片段:Jsf 2 未创建CDI对话实例,jsf-2,primefaces,cdi,Jsf 2,Primefaces,Cdi,我正在尝试开发一个web应用程序,在这个应用程序中,我需要对话范围在多个使用Primefaces 3.5的xhtml页面中使用相同的字符串值进行对话 当我使用conversation.begin开始对话时,它抛出null指针异常,对话为null 我知道我无法使用“new”创建对话实例。但我不知道我错在哪里,为什么它会变成空的 请导游 调用bean方法的xhtml片段: <p:column style="text-align: left" header
<p:column style="text-align: left" headerText="Deal ID"
width="30">
<p:commandLink value="#{selectedDealBean.getDealID()}"
action="#{SearchBean.action(selectedDealBean.getDealID())}"
process="@this" >
</p:commandLink>
</p:column>
你在混合注释。因为您使用的是CDI,所以应该删除@ManagedBean注释,这可能是注入无法工作的原因。我在问题的后面添加了@ManagedBean注释。即使没有这一点,我也要面对这个问题。我需要在配置或xml中添加一些内容吗?
@Named()
@ManagedBean
@ConversationScoped
public class SearchBean implements Serializable {
@Inject
private Conversation conversation;
private DealBean selectedDealBean;
private String selectedID;
private SearchObject searchObj = new SearchObject();
public void start() {
this.conversation.begin();
}
public void end() {
conversation.end();
}
public void submit() {
System.out.println(selectedDealBean);
}
public String action(String selectedID) {
String actionstatus = null;
setSelectedID(selectedID);
actionstatus = "/common/dealDisplay.xhtml?faces-redirect=true" ;
start();
return actionstatus;
}
public String onFinish() {
end();
return "/common/create.xhtml";
}
}