【问题标题】:Fileupload and PrettyFaces and JSF 2.2 [duplicate]Fileupload 和 PrettyFaces 和 JSF 2.2 [重复]
【发布时间】:2014-05-21 12:07:24
【问题描述】:

我尝试了以下解决方案: Primefaces FileUpload with PrettyFaces and JSF 2.2.3

但对少数文件不起作用(在tomcat 7.0.50下测试)。

其中一个文件是: http://ftp.carnet.hr/misc/apache//xerces/j/source/Xerces-J-src.2.11.0-xml-schema-1.1-beta.zip

有人对此问题有更好的解决方案(除了删除 urlmapping)吗?

编辑: 没有抛出错误/异常! 文件显示在 PrimeFaces FileUpload 中,但未触发侦听器! JSF2.2 inputFile 也不行!

【问题讨论】:

  • 您能否详细说明您遇到的问题,例如您遇到的错误?

标签: jsf file-upload jsf-2.2 prettyfaces


【解决方案1】:

我找到了解决问题的方法。

问题是用于上传的表单的操作属性。 PrettyFaces 将 action 属性更改为新的 pretty-url。

如果您将 action 属性更改为真正的 url(带有 .xhtml、.jsf、...的那个),文件上传会再次起作用,并且不需要 context-file(tomcat) 中的 allowCasualMultipartParsing="true" 条目没有了。

要更改路径,请将此脚本放入视图中(您的 xhtml 文件;需要 jquery):

<script type="text/javascript">
     $(document).ready(function() {
         $("form[enctype='multipart/form-data']").attr("action","#{request.contextPath}/test/fileupload.xhtml");
    });
</script>

现在文件上传适用于我的所有文件,包括那些不起作用的文件(即使使用 allowCasualMultipartParsing="true" 解决方案)。

使用 Primefaces4.0 FileUpload-Component 测试。

编辑:
还有其他更好的解决方案吗?

【讨论】:

  • 我遇到了同样的问题,我也看到了这个问题。我正在使用 JSF 2.2.x,在这种情况下,使用带有前缀“a”的 Pastrought。对于我添加到操作的表单和您在脚本中添加的 url。示例:
【解决方案2】:

在我的类似项目 (JSF+JQuery+PrettyFaces/Rewrite) 中,调用了动作和侦听器函数,但未调用 setPart(Part part) 函数 (h:inputFile value="#{bean.part} )。

我找到了两种解决方案,一种是将@MultipartConfig(和@WebServlet + 扩展HttpServlet)添加到接收上传Part 文件的bean。但是,对于我的项目,只需添加 allowCasualMultipartParsing="true" 条目就足够了。

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 2014-06-26
    • 2014-12-30
    • 1970-01-01
    • 2014-07-14
    • 2013-11-11
    • 1970-01-01
    • 2017-11-30
    • 2011-06-16
    相关资源
    最近更新 更多