Icefaces 3.0.1 FileEntry:FileEntryListener 从未被调用

2024-01-02

1.1、IceFaces 3.0.1 和 JSF 2.1,并尝试与 ace:fileentry 一起使用。我不明白为什么监听者永远不会被调用!甚至 IDE 也会向我发送警告“pruebaBean.sampleListener 是未知属性”。 这是我正在做的事情的一个简短示例。当单击提交按钮时,没有任何反应。 有人能帮我吗 ??可能是某种错误?

普鲁巴.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org    /TR/xhtml1/DTD/xhtml1-transitional.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ice="http://www.icesoft.com/icefaces/component"
       xmlns:ace="http://www.icefaces.org/icefaces/components">
 
 <h:head>
 </h:head>
 <h:body>
     <ice:form id="usuarioForm">
         <ice:panelGrid columns="2">
             <ace:fileEntry id="fileEntryImage" absolutePath="c:\iTablero\imagenes"
                             useSessionSubdir="false" useOriginalFilename="false"
                             fileEntryListener="#{pruebaBean.sampleListener}"/>
             <ice:commandButton type="submit" value="Subir archivo"/>
         </ice:panelGrid>
         <ice:messages/>
     </ice:form>
 </h:body>

PruebaBean.java:

 package com.itablero.backingbeans;

 import java.io.Serializable;
 import javax.annotation.ManagedBean;
 import javax.faces.bean.RequestScoped;
 import org.icefaces.ace.component.fileentry.FileEntry;
 import org.icefaces.ace.component.fileentry.FileEntryEvent;
 import org.springframework.stereotype.Controller;

 @ManagedBean
 @Controller
 @RequestScoped
 public class PruebaBean implements Serializable {
 
     public void sampleListener (FileEntryEvent e) {
         System.out.println("it work!");
         FileEntry fe = (FileEntry) e.getComponent();
         //some others operations
     }
 }

Update 1

感谢@fischermatte,我发现问题是将ice:commandButton 替换为h:commandButton。但是当我将其应用到原始完整表单时却不起作用。 fileEntryListener 方法永远不会被调用。有人可以看到这里的错误吗? 从逻辑上讲,前面的示例和下面的代码具有相同的 web.xml、faces-config.xml 等。注意提交文件的按钮是 h:commandButton,还有一个ice:commandButton 表示完整的表单。我已经尝试更改此 por en h:cb。 这是原始表单(显示在弹出/模式窗口中)和 bean:

usuariosList.xhtml

                <ice:panelPopup rendered="#{usuariosBean.showPopup}"
                            visible="#{usuariosBean.showPopup}"
                            modal="true"
                            autoCentre="true">

                <f:facet name="header">
                    <h:panelGroup>
                        <h:panelGroup style="float: left;">
                            Usuario
                        </h:panelGroup>
                        <h:panelGroup style="float: right;">
                            <ice:form>
                            <h:commandButton image="/resources/images/popup-close.png"
                                            alt="Cerrar" title="Cerrar"
                                            style="height: 11px; width: 11px; border: 0;"
                                            action="#{usuariosBean.closePopup}"/>
                            </ice:form>
                        </h:panelGroup>
                    </h:panelGroup>
                </f:facet>
                <f:facet name="body">
                    <ice:form id="usuarioForm">
                        <ice:panelGrid columns="2">
                            <p>Nombre:</p>
                            <ice:inputText id="nombre" label="nombre" value="#{usuariosBean.usuario.nombre}" size="40" />
                            <p>Imagen:</p>
                            <ice:graphicImage value="#{usuariosBean.usuario.imagen}"/>
                            <ace:fileEntry id="fileEntryImage" absolutePath="c:\iTablero\imagenes"
                                            useSessionSubdir="false" useOriginalFilename="false"
                                            fileEntryListener="#{usuariosBean.formListener}"/>
                            <h:commandButton type="submit" value="Subir archivo"/>
                        </ice:panelGrid>
                        <ice:messages for="usuarioForm"/>
                        <ice:commandButton value="Guardar" action="#{usuariosBean.save()}" />
                    </ice:form>
                </f:facet>                    
            </ice:panelPopup>

UsuariosBean.java

package com.itablero.backingbeans;

import com.itablero.excepciones.DAOException;
import com.itablero.modelo.Usuario;
import com.itablero.servicios.AdminService;
import java.io.Serializable;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import org.icefaces.ace.component.fileentry.FileEntry;
import org.icefaces.ace.component.fileentry.FileEntryEvent;
import org.icefaces.ace.component.fileentry.FileEntryResults;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

@ManagedBean
@Controller
@ViewScoped
public class UsuariosBean implements Serializable {

@Autowired
private AdminBean adminBean;
@Autowired
private AdminService adminService;
private Usuario usuario = new Usuario();
private boolean showPopup;

//getter and setters 

public boolean isShowPopup() {
    return showPopup;
}

public void setShowPopup(boolean showPopup) {
    this.showPopup = showPopup;
}


public void openPopup() {
    this.showPopup = true;
}

public void closePopup() {
    this.showPopup = false;
    this.usuario = new Usuario();
}

public String edit(Usuario usuario) {
    this.usuario = usuario;
    this.showPopup = true;
    return "usuariosList";
}

public String delete(Usuario usuario) {
    adminService.delete(usuario);
    return "usuariosList";
}

public String save() {
    try {
        usuario.setTutor(adminBean.getLoggedTutor());
        adminService.save(usuario);
    } catch (DAOException ex) {
        Logger.getLogger(TutoresBean.class.getName()).log(Level.SEVERE, null, ex);
    }
    usuario = new Usuario();
    this.showPopup = false;
    return "usuariosList";
}

public void formListener(FileEntryEvent e) {
    System.out.println("Entro");
    FileEntry fe = (FileEntry)e.getComponent();
    FileEntryResults results = fe.getResults();
    //other stuff
}

}

Update 2

我想我找到了为什么不起作用,但需要一些帮助来修复。我按照 @fischermatte 的建议进行了更正,但没有成功。

要使用表单到达此页面,首先必须导航并抛出主页/admin/admin.html,如果浏览器中出现 URLhttp://localhost:8084/iTablero/admin/admin.html。该页面有一个菜单,该菜单选项之一将我带到有问题表单的页面。但是,因为是 AJAX 调用(如果我没记错的话),浏览器中的 URL 不会改变,它会保留http://localhost:8084/iTablero/admin/admin.html。并且 fileEntry 永远不会调用侦听器。 现在,如果我自己输入 URLhttp://localhost:8084/iTablero/admin/usuariosList.html,页面像以前一样正确显示,但现在文件条目工作完美! 我不知道如何解决这个问题,必须使用重定向吗?我认为是关于 AJAX 的问题......请帮忙! :-D


Update 3

那是菜单,没有重定向就不起作用。

       <h:form>
            <ice:menuBar orientation="horizontal">
                <ice:menuItem value="Tutores" action="tutoresList"/>
                <ice:menuItem value="Usuarios" action="usuariosList"/>
                <ice:menuItem value="Tableros" action="tablerosList"/>
                <ice:menuItem value="Simbolos" action="simbolosList"/>
                <ice:menuItem value="Estadisticas" action="estadisticas"/>
                <ice:menuItem value="Salir" action="#{adminBean.logout()}"/>
            </ice:menuBar>
       </h:form>

With action="usuariosList?faces-redirect=true"工作正常。 已经测试过向前导航到仅具有 FileEntry 的基本页面表单,但也不起作用。同样,如果我使用重定向,效果很好。我认为这个组件和前向导航存在某种问题。


您必须使用 JSF 的命令按钮而不是icefaces 的:<h:commandButton type="submit" value="Subir archivo"/>。这是 ICEFaces 中的一个已知问题,请参阅ace:fileEntry 维基 http://wiki.icesoft.org/display/ICE/FileEntry.

Update 1

另外,您可以删除弹出窗口中呈现的属性,也可以在打开弹出窗口时更新弹出窗口,如下所示:

<h:form>
    <h:commandButton value="Show Popup" action="#{usuariosBean.showPopupAction}">
        <f:ajax render=":popupPanelGroup"/>
    </h:commandButton>
</h:form>
<h:panelGroup id="popupPanelGroup">
    <ice:panelPopup visible="#{usuariosBean.showPopup}" rendered="#{usuariosBean.showPopup}" modal="true" autoCentre="true">
     ...
    </ice:panelPopup>
</h:panelGroup>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Icefaces 3.0.1 FileEntry:FileEntryListener 从未被调用 的相关文章

  • 所有AJAX请求完成时的JQuery调用函数

    我的问题是问题的变体here https stackoverflow com questions 970967 jquery ajax call function when all requests are complete 然而 有两点不
  • PHP/MySQL/jQuery 记录的悲观锁定

    我一直在考虑为我参与的应用程序开发一些简单的记录锁定 有一些用户实际上需要花费几个小时才能完成记录的编辑 当其他人想要更改记录时 这会导致问题 目前不涉及锁定 我不确定乐观锁定在我的情况下是否可靠 因为记录是通过 AJAX 请求保存的 我正
  • 如何将值从 javascript 传递到 php 文件

    我通过以下方式获取价值JQuery像这样的东西 var query popURL split var dim query 1 split var popWidth dim 0 split 1 Gets the first query str
  • 服务器重新启动时显示等待页面

    我有一个服务器并为其创建一个 Web 界面 如果用户按下页面上的重新启动按钮 则用户将被重定向到reboot php他应该看到一个旋转 gif 直到服务器再次可访问并且服务器通过 shell 执行重新启动 如果服务器可以访问 那么我需要重定
  • Javascript 仅在 Chrome 中打开开发者工具后才起作用

    我和这里有同样的问题 为什么JavaScript只有在IE中打开开发者工具一次后才能工作 https stackoverflow com questions 7742781 why javascript only works after o
  • Google App Engine 不解析 JSF 2.0 标签

    我在 AppEngine 上运行 JSF 2 0 时遇到问题 我有以下index xhtml如果我部署它并打开页面 除了Title并且该页面的源代码与编写时完全相同 没有任何更改
  • Jquery .ajax method =“post”但$_POST为空

    ajax method post url save php data id 453 action test beforeSend function complete function success function html mydiv
  • Node Express 和 csurf - 403(禁止)无效的 csrf 令牌

    浏览并尝试了我在这里和其他地方通过谷歌搜索能找到的所有东西 但我就是无法克服这一点 我正在使用 Node Express EJS 并尝试在使用 jQuery ajax 发布的表单上使用 csurf 无论我如何配置 csurf 我都会收到 4
  • IE11 中的 JavaScript 给我脚本错误 1003

    我有一个带有手风琴和一些 javascript 的网站 在 Firefox 中一切正常 但在 IE11 中出现错误 SCRIPT1003 应为 我将其范围缩小到 js 文件中的这段代码 var nmArray new Array funct
  • jQuery 无法从本地主机检索数据

    我有一个非常简单的 jQuery 来检索我最新的推文 getJSON http twitter com statuses user timeline username json count 1 function data tweet tex
  • 如何在MVC中将整套模型附加到formdata并获取它

    如何通过formdata传递一整套模型对象并将其转换为控制器中的模型类型 以下是我尝试过的 JavaScript 部分 model EventFromDate fromDate EventToDate toDate ImageUrl img
  • MVC 4 使用 Bootstrap 编辑模态表单

    我正在使用 MVC 4 和实体框架来开发 Intranet Web 应用程序 我有一个可以通过编辑操作进行修改的人员列表 我想通过使用模态表单使我的应用程序更加动态 所以我尝试将我的编辑视图放入我的 Bootstrap 模式中 我有两个问题
  • Chrome 的萤火虫

    谁能推荐一个类似于 Firebug 的不错的 Google Chrome 扩展程序 我确实看到这里有几个类似的问题 但答案似乎非常过时 Thanks It s built in Press Ctrl Shift I Or Tools gt
  • 如何将 Ajax() 中的值获取到 Django 模板中?

    我有一个 Django 模板 它显示从数据库接收的多个值并将其传递给模板 如下所示 在views py中 def test1 requests requests get requests get requests get someQuery
  • 如何从 Richfaces 弹出窗口刷新父 jsf 页面

    我有一个包含几个字段的 JSF 页面 我跟着这个tutorial http balusc blogspot com 2011 01 jsf 20 tutorial with eclipse and html来自 BalusC 一切都很好 然
  • 无法访问jsf组件中的javascript文件

    我有一个必须访问 javascript 文件的 jsf 组件 我添加了这个输出脚本 如下面的代码所示 我在生成的 html 中收到错误 并且无法访问 javascript javascript 文件位于 document root js 目
  • XHR 调用是宏任务还是微任务?

    Ajax 调用被安排为微任务还是宏任务 浏览器之间有什么区别吗 在 JavaScript Ninja 的秘密 第二版一书中 作者指出网络事件被安排为宏任务 因此 XHR 回调与宏任务一起排队
  • 在 jQuery UI 日期选择器中仅选择特定日期(日期列表来自 AJAX)

    在这里 我发送电影 ID 并获取可用天数 我想将其设置到日历中 但它不起作用并且它禁用所有日期 它从 PHP 返回日期字符串 日期字符串正确 但日历不起作用 请帮忙 日期字符串示例 28 02 2012 29 02 2012 01 03 2
  • Ajax 将文件上传到内容类型为 Multipart 的 GoLang 服务器

    我正在尝试使用多部分表单将音频文件上传到 Golang 服务器 然而 Go 返回错误 multipart NextPart bufio buffer full 我相信这表明我的 Javascript 请求中存在不属于多部分格式的内容 这是我
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre

随机推荐

  • 在圆形叠加层中绘制文本

    我正在尝试在 MKMapView 上绘制一些包含文本的圆形叠加层 我对 MKCircleView 进行了子类化 在其中放置了以下内容 基于this https stackoverflow com questions 4165842 draw
  • 主键违规错误后继续事务

    我正在从日志文件将记录批量插入数据库 有时 每千行中约有 1 行 其中一行违反了主键并导致事务失败 目前 用户必须手动检查导致失败的文件并删除有问题的行 然后才能尝试重新导入 鉴于有数百个这样的文件需要导入 这是不切实际的 我的问题 如何跳
  • 可以使用 CSS 设计 Tkinter GUI 样式吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果不是内置功能 是否有附加包允许 Python 的 Tkinter 使用 CSS 如果您可以使用 CSS 则无法以相同的方式设置样式
  • 如何从句子中标记的 word2vec 中获取句子的向量

    我已经使用 word2vec 从大型文档中生成了标记列表的向量 给定一个句子 是否可以从句子中标记的向量得到该句子的向量 有不同的方法来获取句子向量 Doc2Vec 您可以使用 Doc2Vec 训练数据集 然后使用句子向量 Word2Vec
  • Web 配置中的“全局元素‘配置’已被声明”

    我在网络配置中收到烦人的构建警告 我收到了大约 40 条警告Global element element name has already been declared对于我的网络配置中的所有元素 这是针对我在与 MVC 网站相同的解决方案中
  • 当非管理员尝试访问 wp-admin 或 wp-login.php 时,如何将用户重定向到 404 页面未找到错误

    出于安全原因 我试图通过重写链接来限制我的 WordPress 网站管理员和登录面板对非管理员用户的访问 这样如果用户输入http www mysite com wp login php http www mysite com wp log
  • 传入 Apple 推送通知的端口号

    需要在网络上打开哪些网络服务 端口号 传出传入或两者同时打开 iPod touch 才能接收 Apple 推送通知 我知道发送 apns 时要设置的传出端口号 唯一的问题是 在我的学校 几乎每个传出 和传入 端口都被阻止 因此 APN 不起
  • 如何让 mongo 映射器在 Rails 4 中生成 config/mongo.yml 文件

    我正在尝试使用 Mongo Mapper gem 制作一个 Rails 应用程序 我按照 Mongo Mapper 文档中的说明进行操作 链接在这里 Mongo 映射器文档 http mongomapper com documentatio
  • 可排序 + 可拖动演示 - 如何访问放置的项目?

    我有一个可排序的列表 当一个新项目 从可拖动的项目 放入列表中时 我想访问它以对其执行一些操作 这就是我所拥有的 mySortableList sortable receive function event ui alert this is
  • 在 Objective C 类别中使用 Super?

    我想重写 Objective C 类中的一个方法 但我没有源代码 我已经研究过了 看来类别应该允许我这样做 但我想在我的新方法中使用旧方法的结果 使用 super 来获取旧方法的结果 每当我尝试这个时 我的方法都会被调用 但 超级 为零 知
  • Google 脚本,根据上次修改日期删除文件夹中的文件

    我正在尝试创建一个脚本 该脚本每周一次通过共享驱动器运行 并删除过去 90 天内未修改的任何内容 我在这里发现了一些脚本似乎没有按照我的预期工作 我目前拥有的脚本如下 但由于某种原因它似乎不起作用 但似乎应该起作用 它似乎识别了文件 但似乎
  • eval 有什么作用以及为什么它是邪恶的? [复制]

    这个问题在这里已经有答案了 var myString x myObject x 10 value eval myObject myString alert value alert myObject myString 评估是邪恶的 http
  • Excel 多行条件色标

    我有一个电子表格 显示一系列产品的库存数据 我每天都有一个专栏 其中的值显示我的库存水平将如何随着时间的推移而减少 我想使用色标来轻松查看某些产品的库存何时会变少 我的量表的最小值 中值和最大值基于不同列中的值 并且每个产品的值都不同 根据
  • 使用 java 获取便携式设备

    我正在尝试访问设备中的一些文件 具有 Windows CE 其中的应用程序 显示为便携式设备在 windows 7 中使用 java applet 我的设备路径是这样的 Computer Attari s Device myfile txt
  • Doctest 无法识别 __future__.division

    我写了以下文档测试x doctest This is something gt gt gt x 3 4 foo bar something else gt gt gt from future import division gt gt gt
  • 定时器和线程的问题

    我是一个通过实例学习的 C 程序员 水平不是很先进 这就是为什么这个问题完全难住了我 无论互联网上有多少信息 我本质上是在创建一个程序 该程序在计时器上重复轮询网站以获取一些信息 在此过程中 将创建一个 WebBrowser 控件来导航到信
  • Apple 登录时出现错误“Invalid_client”firebase android

    我们为 Apple 所做的一切 登录 在 Firebase 中 我们设置 service id keyID 私钥 团队 ID 在 Android 代码中 我们做了与文档相同的操作 尽管如此 我们仍然面临苹果的问题 以无效客户端身份登录 经过
  • 检查: git rebase 是否完成?

    这是 git rebase 的替代方案 https stackoverflow com questions 39603553 alternative to git rebase 39605048 noredirect 1 comment66
  • 在 Rust 测试中,如何使用 NEAR 协议检查帐户的状态(帐户余额)?

    在 Rust 测试中 如何检查帐户的状态 帐户余额 例如 我有这个辅助函数 fn set context account index usize is view bool deposit Amount let context VMConte
  • Icefaces 3.0.1 FileEntry:FileEntryListener 从未被调用

    1 1 IceFaces 3 0 1 和 JSF 2 1 并尝试与 ace fileentry 一起使用 我不明白为什么监听者永远不会被调用 甚至 IDE 也会向我发送警告 pruebaBean sampleListener 是未知属性 这