Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 为什么PrimeFaces打印多条消息?_Jsf_Primefaces - Fatal编程技术网

Jsf 为什么PrimeFaces打印多条消息?

Jsf 为什么PrimeFaces打印多条消息?,jsf,primefaces,Jsf,Primefaces,我正试图从表单中保存一些内容。按Save时,应用程序将成功保存插入的信息并打印成功消息。问题是,出于某种原因,它还打印一个完全没有消息的空框 这是我用来保存的代码 public void saveAndNew() { IObject createdObj = null; List<IAttributeObject> allAttributesList = new ArrayList<IAttributeObject>(); for (List

我正试图从表单中保存一些内容。按Save时,应用程序将成功保存插入的信息并打印成功消息。问题是,出于某种原因,它还打印一个完全没有消息的空框

这是我用来保存的代码

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
并创建一个。通过删除内容,您可以缩小问题范围,并经常找到原因。