我有点困惑。我试着做一个简单的例子,我们可以从xhtml页面上传文件,在上传文件时会显示something.jpg。 我这样做:
<h:outputScript library="javascript" name="showProgres.js" />
<h:outputScript library="javascript" name="prototype-1.6.0.2.js"/>
<h:form id="form" prependId="false" enctype="multipart/form-data">
<h:panelGrid columns="2">
<h:inputFile id="upload1" value="#{demoBean.file1}">
<f:ajax onevent="com.corejsf.showProgres" render="@form" />
</h:inputFile>
<h:graphicImage id="pole" library="images" name="orange-barber-pole.gif"
style="display: none"/>
<h:commandButton action="#{demoBean.upload()}" value="upload"></h:commandButton>
</h:panelGrid>
</h:form>
在资源总监中,我有showprogres.js
个文件。使用showProgres
函数如下:
if(!com) var com = {};
if(!com.corejsf) {
com.corejsf = {
showProgres: function(data){
var inputId = data.source.id;
var progresBarid = inputId.substring(0,
inputId.length - "upload2".length) + "pole";
if(data.status == begin)
Element.show(progresBarid);
else if (data.status == success)
Element.hide(progresBarid);
}
}
};
当我在glassfish上开始样品时,结果对我来说意外。像这样的东西(在整个xhtml页面上没有错误):
此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。
<partial-response id="j_id1">
<changes>
<update id="j_id1:javax.faces.ViewState:0">
<![CDATA[ -3528225672520671936:9111168294196781686 ]]>
</update>
</changes>
</partial-response>
有谁知道会发生什么?我没有任何错误。没有ajax,一切都很好(上传工作)。
答案 0 :(得分:0)
因此,如果您不想动态更新“进度条”,则可以使用onclick
处理程序显示图像,如下所示:
<h:form id="uploadForm" enctype="multipart/form-data">
<h:inputFile id="upload1" value="#{demoBean.file1}" />
<h:graphicImage id="pole" library="images" name="orange-barber-pole.gif"
style="display: none"/>
<h:commandButton action="#{demoBean.upload()}" value="upload"
onclick="Element.show('uploadForm:pole');" />
</h:form>
不需要ajax功能。我没有尝试过,但我的猜测是,您所看到的行为来自于提交表单时呈现的形式,即如果您有<f:ajax render="pole" />
可以让您继续提交。