【问题标题】:p:fileUpload not working after rendered by p:ajax由 p:ajax 渲染后 p:fileUpload 不起作用
【发布时间】:2014-04-28 20:10:27
【问题描述】:

我很困惑为什么组件p:fileUpload 不调用fileUploadListener 一旦组件由p:ajax 显示。如果我把它放在panelGrids 之外,甚至删除它们,就可以了。

什么不起作用:

<div class="pure-control-group"> 
    <label for="mostraNoIndex">Slideshow</label>
    <p:selectBooleanCheckbox value="#{destaqueCadastrarBean.d.apareceNoSlide}">
        <p:ajax event="change" update="upload"></p:ajax>
    </p:selectBooleanCheckbox>
</div>                                      

<h:panelGrid id="upload">
    <h:panelGrid rendered="#{destaqueCadastrarBean.d.apareceNoSlide}">
        <div class="pure-control-group"> 
            <label for="mostraNoIndex">Imagem</label>
            <p:fileUpload fileUploadListener="#{destaqueCadastrarBean.handleFileUpload}" mode="advanced" dragDropSupport="true" sizeLimit="100000000000" fileLimit="1" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />                                    
        </div>
   </h:panelGrid>
</h:panelGrid>

什么有效:

<div class="pure-control-group"> 
    <label for="mostraNoIndex">Slideshow</label>
    <p:selectBooleanCheckbox value="#{destaqueCadastrarBean.d.apareceNoSlide}">
    </p:selectBooleanCheckbox>
</div>  

<div class="pure-control-group"> 
    <label for="mostraNoIndex">Imagem</label>
    <h:fileUpload fileUploadListener="#{destaqueCadastrarBean.handleFileUpload}" mode="advanced" dragDropSupport="true" sizeLimit="100000000000" fileLimit="1" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />                                    
</div>

【问题讨论】:

  • 我认为引用 upload 不在这里。你的表格在哪里?
  • 上传参考是正确的,因为当按下/单击 p:selectBooleanCheckbox 时,panelGrid 正确出现。我把表格拿出来只是为了保持清洁,我应该张贴吗?不过有点大。
  • 还有&lt;p:fileUpload&gt; 而不是&lt;h:fileUpload&gt; ?
  • 确实是。抱歉,复制/粘贴

标签: ajax jsf jsf-2 primefaces


【解决方案1】:

刚刚找到了解决方案。被调用的 bean 是 RequestScoped,将其更改为 ViewScoped。我猜是因为在加载表单时请求了 bean,并且 p:fileUpload 只能在创建 bean 后出现,组件无法到达 bean。在视图范围内,bean 可用于随后出现的组件。如果有人有更技术和更清晰的解释,我想更好地理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2012-11-28
    • 2017-02-27
    • 1970-01-01
    • 2021-01-11
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多