Primefaces组件未调用操作

时间:2018-02-14 17:47:22

标签: jsf primefaces weblogic weblogic12c

我有一个命令按钮组件,它在我的bean中调用一些动作。当我在本地weblogic服务器(v12.1.2.0.0)上测试时,正确调用了该操作。但是,当我部署到dev weblogic服务器(v12.1.1.0)时,永远不会调用该操作。使用actionListener而不是action时,我也得到类似的结果。

可能导致旧版本中的操作失败的原因是新版本中没有?有没有潜在的工作?

这是.xhtml

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui" template="/templates/main.xhtml">
    <ui:define name="pagebody">

        <h:outputScript library="javascript" name="script.js" />

        <h:body>
            <h:form id="uploadform" prependId="false" enctype="multipart/form-data">
                <center>
                    <h2>File Upload</h2>
                    <br />
                    <p:commandButton value="Choose" action="#{uploadViewBean.chooseFile}" icon="ui-icon-plus"/>
                </center>
            </h:form>
        </h:body>
    </ui:define>
</ui:composition>

在bean中调用的方法只是

public void chooseFile() {
    try {
        JFileChooser jfc = new JFileChooser();
        jfc.setFileFilter(new FileNameExtensionFilter("Data Tables", "txt", "csv", "xlsx"));
        jfc.setAcceptAllFileFilterUsed(false);
        int returnVal = jfc.showOpenDialog(null);
        if(returnVal == JFileChooser.APPROVE_OPTION) {
            setTheFile(jfc.getSelectedFile());              
        }
    } catch (Exception ex) {
        FacesContext.getCurrentInstance().addMessage(
                null,
                new FacesMessage(
                        ex.toString()));
    }
}

是的,我知道primefaces有一个我可以使用的文件选择器组件,但我需要以这种方式显示文件选择器。这不是我想关注的问题。

1 个答案:

答案 0 :(得分:0)

正在使用的PrimeFaces版本与weblogic服务器版本之间存在问题。 PrimeFaces更新到6.2导致错误消失。