我正在尝试开发一个Web应用程序,我需要Conversation范围在Primefaces 3.5的多个xhtml页面中继续使用相同的String值。
当我开始与conversation.begin()进行对话时,会抛出空指针异常,并且会话为null。
我知道我无法使用' new'创建对话实例。但我无法弄清楚我哪里出错了,为什么它会变成无效。
请指导。
调用bean方法的xhtml片段:
<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>
bean的片段:
@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";
}
}
答案 0 :(得分:0)
你正在混合注释。由于您正在使用CDI,因此应删除@ManagedBean注释,这可能是注入无效的原因。