Jsf 为什么PrimeFaces打印多条消息?
我正试图从表单中保存一些内容。按Save时,应用程序将成功保存插入的信息并打印成功消息。问题是,出于某种原因,它还打印一个完全没有消息的空框 这是我用来保存的代码Jsf 为什么PrimeFaces打印多条消息?,jsf,primefaces,Jsf,Primefaces,我正试图从表单中保存一些内容。按Save时,应用程序将成功保存插入的信息并打印成功消息。问题是,出于某种原因,它还打印一个完全没有消息的空框 这是我用来保存的代码 public void saveAndNew() { IObject createdObj = null; List<IAttributeObject> allAttributesList = new ArrayList<IAttributeObject>(); for (List
public void saveAndNew() {
IObject createdObj = null;
List<IAttributeObject> allAttributesList = new ArrayList<IAttributeObject>();
for (List attributeList : groupToFieldListMap.values()) {
for (Object object : attributeList) {
IAttributeObject attributeObject = (IAttributeObject) object;
if (attributeObject.getAttributeDescriptor().getDataType() == DataTypeConstants.THUMBNAIL) {
if (null != img) {
try { // add the cropped image bytes
attributeObject.setAttributeValue(img);
} catch (M3Exception e) {
JsfUtil.addErrorMessage(e, user);
}
}
}
allAttributesList.add(attributeObject);
}
}
// RequestContext requestContext = RequestContext.getCurrentInstance();
try {
createdObj = user.getApiSession().createObject(getIdByType(getSelectedVal()), allAttributesList);
if (createdObj != null) {
user.addRecentlyVisitedToServer(createdObj);
// Messages.addGlobalInfo("Object " + createdObj.getNumber() + "
// created");
// requestContext.update(":mainMenu");
init(this.selectedVal);
// requestContext.reset("createForm");
FacesContext.getCurrentInstance().addMessage(null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "Info", "PrimeFaces Rocks."));
}
} catch (M3Exception e) {
JsfUtil.addErrorMessage(e, user);
// requestContext.update("createForm:tree");
}
}
public void saveAndNew(){
IObject createdObj=null;
List allAttributesList=newarraylist();
对于(列表属性列表:groupToFieldListMap.values()){
for(对象:attributeList){
IAttributeObject attributeObject=(IAttributeObject)对象;
if(attributeObject.getAttributeDescriptor().getDataType()==DataTypeConstants.THUMBNAIL){
如果(null!=img){
请尝试{//添加裁剪的图像字节
attributeObject.setAttributeValue(img);
}捕获(M3E){
JsfUtil.addErrorMessage(e,用户);
}
}
}
allAttributesList.add(attributeObject);
}
}
//RequestContext RequestContext=RequestContext.getCurrentInstance();
试一试{
createdObj=user.getApiSession().createObject(getIdByType(getSelectedVal()),allAttributesList);
如果(createdObj!=null){
user.addRecentlyVisitedToServer(createdObj);
//Messages.addGlobalInfo(“对象”+createdObj.getNumber()+”
//创建“);
//更新(“:main菜单”);
init(this.selectedVal);
//reset(“createForm”);
FacesContext.getCurrentInstance().addMessage(空,
新FacesMessage(FacesMessage.SEVERITY_信息,“信息”,“PrimeFaces Rocks”);
}
}捕获(M3E){
JsfUtil.addErrorMessage(e,用户);
//update(“createForm:tree”);
}
}
就在捕获之前,我正在打印消息,结果是
这是xhtml中的代码
<h:form id="createForm">
<p:messages id="messages" showDetail="true" autoUpdate="true" />
<h:panelGrid columns="3" columnClasses="colOneTop, colTwoTop, colTop">....
....
我做错什么了吗?注释掉两个JsfUtil.addErrorMessage(e,user);'在您的代码中输入,然后查看是否仍然收到错误消息。如果是这样的话,可能是由于xhtml中的某些“必需”元素造成的。这不起作用=(你是什么意思,这不起作用,你仍然看到空的错误消息?@KorayTugay,好吧,问题是我在某个深处有一个方法失败,陷入了捕获空指针的捕获中,返回的错误为空。但这完全是我的错。PrimeFaces有效地按照它被告知的那样做。下次e。g、 尝试使用
h:messages
并创建一个。通过删除内容,您可以缩小问题范围,并经常找到原因。