问题标签 [seam-conversation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
306 浏览

internet-explorer - 带有对话和 Internet Explorer 的 Seam 2 不起作用

我的 Seam (2.1) 和 Internet Explorer 应用程序中有一个奇怪的问题。

使用 Firefox,一切正常。我在我的页面中使用了会话范围内的 bean。当我进入我的页面时,会创建这个 bean,当我在页面上进行操作(例如提交表单)时,该 bean 已经存在并且所有这些数据都存在。

但在 Internet Explorer(7 和 8)中,bean 是在每次调用页面时创建的。所以我丢失了这个 bean 中的所有数据。

有人可以帮助我吗?

谢谢。

0 投票
1 回答
558 浏览

servlets - Seam JBoss Servlet 注入

我是使用 JBoss AS6 创建 SEAM (2.2) 应用程序的初学者

我正在集成充当 http servlet 的 Paypal 快速结帐代码,这似乎可以正常处理 paypal 的付款,问题是我似乎无法将有状态的支持 bean 注入 servlet 以验证付款并更新我这边的数据库。我尝试了多种方法,包括以下...

在每种情况下,我都会留下一个空指针异常,我不认为这是 bean 的问题,因为它甚至不会注入消息文件

正如我看到很多类似的问题,我什至不确定我的设置是否可行?我还缺少一些进一步的配置吗?

有人可以建议一个解决方案,或者一种从 servlet 访问我的支持 bean 的方法吗?

谢谢

0 投票
1 回答
3131 浏览

java - SEAM 会话或会话范围 bean?

我对在有状态的支持 bean 上使用哪个范围有点困惑,我目前有一个通过 JSF 将用户结果传递到 xhtml 页面的 bean,该 bean 使用默认值(对话范围),@Create 方法标记为 @ Begin(join=true)....这应该使 bean 加入当前长期运行的对话,对吗?

但是我发现,当用户导航到不同的页面,然后再次返回时,@Create 方法在支持 bean 上再次被调用,我想避免这种情况

我发现解决此问题的唯一方法是将 bean 标记为 @Scope(ScopeType.SESSION) ,它在用户登录会话的整个生命周期内维护 bean(如预期的那样)。

但是在 SEAM 文档中阅读了几次后,以这种方式使用会话范围的支持 bean 是不好的做法......我的问题是,我如何阻止会话范围的 bean 在每次重新加载页面时重置......我觉得我错过了有关对话范围的一些基本内容??!有人可以启发我吗

我在下面包含了一个有问题的bean的编辑版本......

0 投票
2 回答
1124 浏览

seam - 如何在焊缝/接缝中监听对话超时

目前正在开发一个包含多个选项卡式对话的应用程序。当对话超时时,我想关闭与该对话关联的选项卡。

有没有办法监听对话超时,还是我只需要继续轮询并检查对话是否超时?

0 投票
1 回答
1039 浏览

java - bean 属性上的 SEAM JSF Lazy Init 异常

我在我的 SEAM (2.2.2) 应用程序中遇到延迟初始化异常的问题,我正在使用 SEAM 托管的持久性上下文(使用 JPA),在此处的文档中进行了描述

SEAM 文档参考。9.3.1 使用 JPA 的 SEAM 托管持久性上下文

在我的 GenericDAO 类中使用 @In 注入实体管理器

设想:

我有一个会话范围的 bean,它注入当前登录的用户实体(会话范围),当我尝试通过页面中的 JSF(el)懒惰地加载一些额外的用户属性时,LIE 似乎被抛出。

堆栈跟踪错误:

起初我以为对话可能已经超时,但这是通过注销用户来处理的,而不是抛出 LIE

所以现在我想可能是因为用户实体是从会话范围注入的,而操作 bean 是会话范围的,所以对象以某种方式与实体管理器分离?

不幸的是,不是每次都抛出异常,所以我不能轻易地重现它(应用程序是实时的,所以我会在何时通过错误)

我知道我可以通过将用户属性设置为 EAGERLY 来解决这个问题,但我想先深入了解这一点,并且不希望预先加载所有实体

有关我的设置的更多详细信息:

组件.xml:

持久性.xml

通用DAO

0 投票
2 回答
1623 浏览

hibernate - 对象引用了一个未保存的瞬态实例 - 在刷新 Hibernate 之前保存瞬态实例

我正在使用 Seam 框架。我有 2 个实体:

请求.java

RequestEvent.java

当我进行此交易时:

我收到了这个错误:

0 投票
1 回答
581 浏览

jsf-2 - 在没有长时间对话的情况下在 seam 2.3 中使用 jstl 标签是行不通的

我正在从 seam 2.2 (jsf 1.2, jboss6) 迁移到 seam 2.3 (jsf 2, jboss 7) 并发现奇怪的行为。我能够通过联系人列表示例重现它:

编辑 viewContact.xhtml 页面并替换这个片段:

像这样:

(不要忘记添加命名空间xmlns:c="http://java.sun.com/jsp/jstl/core"

我知道改变是没有意义的——它只是说明了我的问题。

重建/重新部署后,当您转到 viewContact 页面并尝试添加任何新评论时,您将获得:

请求处理期间的异常:

Caused by javax.servlet.ServletException with message: "java.lang.IllegalStateException: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.jboss.seam.example.contactlist.Comment.contact -> org.jboss.seam.example.contactlist.Contact"

现在让我们做一些其他更改,以便在进入 viewContact 页面后开始长时间运行的对话(并在持续评论后结束它)

在 pages.xml 中插入这个片段:

在 viewContact.xhtml 中更改提交按钮:

现在,在重新部署之后,可以添加新的注释——不会抛出异常。

有人可以向我解释为什么在没有长时间对话的情况下使用 jstl 标签不适用于 seam 2.3?

0 投票
2 回答
2614 浏览

java - 在 SEAM 2 中捕获全局“@In 属性需要非空值”

OnPAGE A是一个包含数据库中一些数据的表。
通过单击一行,页面将被转发到PAGE B控制器中,实体将被注入

这可以正常工作。

问题是,我们的用户似乎使用了书签PAGE B,所以实体永远不会被注入,因为他们从未访问过PAGE A

所以他们总是抛出这个异常

是否有一个全局函数来捕获所有@In attribute requires non-null value异常并将用户转发到PAGE C(起始页)?
(当然我可以捕捉到这个执行,PAGE B但这不仅发生在一个页面上,我们希望在每一页上处理这个异常)

我们正在使用:jboss5 + jsf 1.2 + seam 2

在 EmirCalabuch 回答后更新
我还尝试了 EmirCalabuch 的提示:

但问题是,此刻对话是活跃的,这种转发pageC永远不会发生......

我还在page.xml这个页面中做了类似的事情:

在我的Controller.java我有这样的事情:

但这checkIfEntityIsSet()从来没有被调用过,因为@In attribute requires non-null value之前抛出过......所以这根本没有帮助......

0 投票
1 回答
421 浏览

jakarta-ee - 空对象传递给接缝中继器上的动作

我在表格行的接缝页中使用了这样的中继器:

PatientAction 是一个 bean,带有一个名为 inject 的方法,它在输入中接受一个 Patient 类 Object。PatientList.entities 是一个 List,中继器在一个名为 Patient 的 var 上循环,对象类的名称相同。

在将页面返回给客户端之前,seam 会为列表中的每个患者(行)呈现姓名和姓氏,并在第一列添加一个按钮,在最后一列添加一个链接。

使用按钮,当我单击按钮时执行操作,接收与我按下按钮的行相对应的注入患者的参数。[好的!]

当我使用链接(我用它打开一个新的浏览器页面,保持相同的对话)时,方法注入在我单击时被调用,但传递的参数为空!(我可以在我的注入方法的调试中看到,即将到来的患者为空)

0 投票
1 回答
201 浏览

java - 异常后保持对话(在 Pages.xml 中处理)

我在一个我最初没有开始的项目中工作,所以有很多工件和约定如果不付出很大的努力我就无法改变。无论如何,这就是问题所在。我需要在服务器上缓存多个文件(即“子”到正在“主”父页面上编辑的实体),以便在用户提交时可以将它们发送到其他地方。上传的文件还包括用户输入的元数据。我想出的最好方法是渲染一个“对话框”,它有一个 iframe 进行上传并具有元数据的输入。然后,我创建了 Seam 的多部分过滤器的覆盖(使用安装优先级),该过滤器使用 Apache 文件上传 jar 和自定义请求包装器,它将我的信息携带到服务器上的操作调用中。除非我从过滤器中抛出异常,否则一切顺利,例如,如果请求大小太大。异常由 pages.xml 声明捕获和处理。

当我通常在我的对话框框架中提交表单时,框架中的对话仍然存在(如我所愿),当异常被捕获时,我得到一个新的(如我不想要的)。我希望框架的全局消息区域中显示的异常传递的错误消息,但我需要保持与以前相同的对话,因为对话框中添加的“孩子”是“父母”实体的孩子在主页中。这是框架代码中的表格。我尝试过 s:button (不提交表单),尝试过参数,并尝试使用对话 ID 隐藏输入。

这是覆盖 Seam 的多部分过滤器的过滤器。

所以,重申一下,如果我使用框架上传文件,一切正常,框架继续进行相同的对话,将每个孩子添加到父级,如果我上传的文件太大,我会在全局消息中得到正确的消息框架的区域,但对话会增加,然后孩子显然被添加到新对话中的新父实体中。任何帮助将不胜感激。