我有一个命令按钮组件,它在我的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有一个我可以使用的文件选择器组件,但我需要以这种方式显示文件选择器。这不是我想关注的问题。
答案 0 :(得分:0)
正在使用的PrimeFaces版本与weblogic服务器版本之间存在问题。 PrimeFaces更新到6.2导致错误消失。