我正在尝试使用ace:fileEntry
上传图片,因为我读到此组件需要从h:commandButton
提交才能开始下载。我的问题是,当我用ice:commandButton
切换h:
时,我的托管bean(在对话范围内)再次被创建(@PostConstruct
被调用)和h:commandButton
中的方法并且fileEntryListener
不再被调用。
而另一个可能造成这种情况的问题是,当我第一次进入我的页面时,托管bean被创建,我调用会话开始,但是当我做第二个请求(来自commandLink
)时,再次创建托管bean ,然后启动一个新的对话,之后你可以玩多久你想要再次创建托管bean。
回到我最初的问题,如果我有ice:commandButton
再次创建托管bean,如果它与h:
一起再次创建。
并且为了在其中添加更多乐趣,如果我从ace:fileEntry
删除渲染的属性(解析为true),则调用fileEntryListener
,但h:commandButton
的操作不是无论怎样都叫。
我尝试向组件添加显式ID,尝试使用ice:form
更改h:form
..没有。
请帮助。
Ps:为什么ICEfaces 2不能用于所有ice组件,为什么它需要h:commandButton
而不是ice:commandButton
,为什么带有f:selectItems
的新JSF 2.0内容由常规列表支持使用ice:selectOneMenu
,只与h:selectOneMenu
一起使用? ICEfaces有什么用?为什么CDI不能按预期工作,使用Seam 2我也遇到了两次调用的问题.. ps2:如果我没有导航到另一个视图?cid=1
不存在于 URL < /强>
答案 0 :(得分:2)
现在,使用ace:fileEntry和h:commandButton,ice:commandButton无法使用的原因是因为它是一个AJAX组件,浏览器不会在AJAX提交中上传文件。即使使用HTML5,它也不是自动的,必须使用新的File和XmlHttpRequest API。在HTML4浏览器中,只有整页,完整表单,提交将上传文件内容,只有h:commandButton以这种方式运行。有关详细信息,您可以在页面顶部附近看到:
http://wiki.icefaces.org/display/ICE/FileEntry
我们的ice:组件是h:组件的扩展变体,例如ice:selectOneMenu,它们缺少一些新的JSF 2功能,因为我们一直专注于我们新的高级组件环境,因为客户需求丰富的客户端组件。此外,重点是保持向后兼容冰:组件,以方便客户从ICEfaces 1.8.x迁移到ICEfaces 2.x,更不用说改变这些组件的行为。但我们仍在积极维护和改进冰:组件,并将很快添加新功能。随意在我们的Jira系统中创建任何增强请求,并对任何现有条目进行投票,因为这确实指导了我们的开发优先级。
答案 1 :(得分:1)
我是来自ICEfaces组件团队的Mark Collette,希望我能回答你的一些问题。
您的大多数问题似乎与CDI集成更相关,而不是组件本身的问题。我知道症状会根据你使用的组件而改变,但我认为这是因为ice:组件使用AJAX而h:组件则没有。很多时候,与其他框架的集成问题在AJAX交互中比在整页GET / POST交互中更容易观察到。因此,您的问题可能是由于我们的CDI集成或您的应用程序的配置。因此,请查看我们关于在CDI中使用ICEfaces的文档,如果您仍然遇到任何问题,我建议将详细信息发布到我们的论坛。
http://wiki.icefaces.org/display/ICE/Using+ICEfaces+with+CDI
http://www.icefaces.org/JForum/forums/list.page
[抱歉,但是这个论坛不允许我发布超过2个链接,所以我会将其余的帖子拆分成另一个帖子,希望这会有效]