【问题标题】:rich:fileUpload within GateIn portlet丰富:GateIn portlet 中的文件上传
【发布时间】:2011-09-01 04:03:42
【问题描述】:

环境:RichFaces 3.3.3 Final; Facelets 1.1.15; JBoss portletbridge 2.1.0 最终版; GateIn Portal 3.1.0 与 JBoss AS 5.1 和内置的 Mojarra JSF 1.2 捆绑在一起。

一些代码sn-ps: 文件页.xhtml:

 <a4j:form id="fileForm">
      <rich:fileUpload fileUploadListener="#{testBean.fileListener}"
        acceptedTypes="txt" maxFilesQuantity="1" />
      <!-- etc. -->
 </a4j:form>

TestBean.java:

 public void fileListener(UploadEvent e) throws IOException {
    System.out.println("Entering the fileListener Method");
    UploadItem item = e.getUploadItem();
    File file = item.getFile();
            // etc...
}

部署为独立 Web 应用程序时的结果与预期的一样,组件显示,用户单击添加,浏览然后选择文件,文件添加到列表中,用户单击上传按钮,并且“输入文件监听器”行方法”显示在控制台上(以及发生的其他事情)。

GateIn 上的结果:除监听器中的 sysout 和其他代码外,以上所有内容。似乎没有调用此方法。

我已经花了几天时间阅读 JBoss 社区论坛和一些 JIRA,看来我的问题并不新鲜。我尝试了我发现的每一个建议,但没有一个对我有用。此外,这些帖子都没有比 2010 年 1 月更新,从那时起,我的应用程序的所有组成部分都有新版本。

非常感谢您的帮助,或指向最新和详细信息的指针。

【问题讨论】:

    标签: jsf file-upload richfaces gatein


    【解决方案1】:

    我不认为这是对我自己问题的回答,但对于评论来说太大了,我不想通过将其添加为编辑来影响答案。无论如何,在一位同事的建议下,我有一种解决方法。

    正如我在问题中提到的,文件上传在独立的网络应用程序中完美运行,所以为什么不让 portlet 仅仅指向那个网络应用程序,而不是那个网络应用程序。

    在 portlet.xml 中,将 &lt;portlet-class&gt; 从 javax.portlet.faces.GenericFacesPortlet 更改为您创建的 java portlet,例如 mypackage.DispatchPortlet。同时删除带有 defaultViewId 的 &lt;init-param&gt;。

    DispatchPortlet 与其他一切都在同一个项目中,并且比入口 HelloWorld portlet 稍微复杂一点。只需覆盖 doView 并添加以下四行:

     response.setContentType("text/html");
     PrintWriter out = response.getWriter();
     out.println(HTML_CONTENT);
     out.close();
    

    HTML_CONTENT 是一个静态字符串变量,看起来有点像:

     <iframe src="url to your app" height="400" width="600">no iframes</iframe>
    

    这就是它所需要的一切。几乎有人想知道为什么我们要费心拥有一个 portlet 桥接器。不仅一切正常,而且看起来更好一些,因为 GateIn 对 CSS 所做的一些时髦的事情没有发生。

    但是,我认为这是一个 ghetto 解决方案,并且我真的在寻找正确的方法来使它成为 100% 的 portlet,并具有正常的文件上传功能。

    【讨论】:

      【解决方案2】:

      我在 Red Hat EPP 的文档中发现不支持文件上传。或许当下一个版本准备好(支持 JSF 2、Richfaces 4 和 Bridge 3)时,它就会出现,但目前,解决方法是唯一的选择。

      【讨论】:

        猜你喜欢
        • 2012-09-12
        • 1970-01-01
        • 2011-05-31
        • 2015-03-12
        • 2012-05-29
        • 1970-01-01
        • 2012-05-25
        • 2014-12-03
        • 1970-01-01
        相关资源
        最近更新 更多