问题现象:
在启动对话后,比如一个页面流,在对话进行过程中,如果点击导航转向到别的无关页面,比如首页,显示错误:错误的导航(Illegal navigation)。
解决方案:
<s:link
view="/login.xhtml" value="首页" propagation="none"
/>
<rich:menuItem
submitMode="ajax" value="首页"
action="#{menuapp.doHome}" >
<f:param name="conversationPropagation"
value="none"/>
<rich:menuItem/>
<h:commandLink
action="main" value="Exit">
<f:param
name="conversationPropagation" value="none"/>
</h:commandLink>
如果需要结束对话,将 none 修改为 end
可参考的解释有:
The problem is that jPDL navigation is constrained
(by contrast to JSF or Seam navigation which are free form
).
So, with jPDL, the path that your users can follow is represented by a
finite graph, with well defined transitions from state to state (a state
being either a page or decision).
Each time the jPDL/jBPM engine
detects that a user took a path that is not defined in the graph, it triggers an Illegal navigation Exception
.
If you provide some kind of escape door
for your users (like a cancel
button, or back to menu
), you should
end the pageflow when the user use it. The key point is to end the conversation
: that will end the pageflow as well.
According to the doc, this is done by using <end-conversation>
(in your .jpdl.xml file) or by calling an @End
method. AFAIK, you could use a s:link
to do that. But propagation="none"
will not suffice: the conversation will not be propagated thought the link, but will still be active.
选自: http://seamframework.org/Community/RichmenuItemAndPropagationParam
分享到:
相关推荐
seam-navigation.jar
Seam为你的应用程序中... Seam组件可能是有状态的,包含与几个定义良好的上下文中任何一个相关联的状态, 包括长时间运行上下文、持久化上下文、业务流程上下文, 以及用户交互中能够跨多个Web请求保存的对话上下文。
基于Seam2.1的最新力作《Seam Framework: Experience the Evolution of Java EE, 2nd Edition》的摘要部分,有8页,让你快速了解Core Seam By: Jacob Orshalick , Michael Juntao Yuan, Thomas Heute February 2009 ...
seam carving 测试数据集免费分享
基于Seam2.1的最新力作《Seam Framework: Experience the Evolution of Java EE, 2nd Edition》By: Jacob Orshalick , Michael Juntao Yuan, Thomas Heute February 2009 (Safari Shortcut - June 2008)
Seam2.10安全API为你使用Seam开发的应用程序提供了大量与安全认证相关的特性,包含了以下几块: • 安全验证 - 一个可扩展的、基于JAAS的安全验证层,允许用户to authenticate against any security provider • ...
seam_carving代码实现 图像缩放
在Java中实现了Seam Carving算法。 GUI使用Java Swing开发。 实现了基于线程的用于调整图像大小的过程,该过程允许调整大小的过程在后台工作。 用户可以在调整大小后保存图像。 运行项目 要从命令行运行项目,请...
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...
matlab累加和的代码接缝雕刻 代码已经完成,只需上传到github。...view_seam(im,seam,seamDirection) 输入:图像,接缝矢量和要调整图像大小的方向。 Ouput:接缝的情节。 reduction_height(im,energ
JBOSS_SEAM配置
jboss seam 架设Eclipse 中常见的错误解决.doc
seam in action seam in action seam in action seam in action seam in action seam in action seam in action
seam介绍
seam级联菜单例子
Seam为持久化集成了JPA和Hibernate 3,为轻量化的异步性集成了EJB Timer Service和Quartz,为工作流集成了jBPM,为业务规则集成了JBoss规则,为电子邮件集成了Meldware Mail,为完整的文本搜索集成了Hibernate ...
JBoss Seam JBoss Seam JBoss Seam
seam下一代web开发框架
seam资料seam资料seam资料seam资料seam资料seam资料seam资料seam资料
seam carving的相关代码实现