使用Seam中的方法重定向

时间:2013-08-28 14:30:31

标签: java seam

假设我有一个按钮:

<h:commandButton value="Assign task" action="#{taskAssigner.assignTo(user)}"/>

为用户分配新任务。我希望能够立即重定向到任务页面,这相当于点击像

这样的链接
<s:link value="#{task.description}" action="#{workOnTask.start}">
    <f:param name="taskId" value="#{task.id}" />
</s:link>

假设在WEB-INF / pages.xml中我有类似

的东西
<page view-id="/task-list.xhtml">
    <navigation from-action="#{workOnTask.start}">
        <redirect view-id="/task.xhtml"/>
    </navigation>
</page>

我无法在TaskAssigner.assignTo()中看到我如何在Java中做到这一点。我需要访问Seam组件,对吗?我需要重定向到/task.xhtml并根据需要设置param taskId,并运行workOnTask.start(),它会对组件进行一些初始化。

1 个答案:

答案 0 :(得分:1)

首先,建议不要将s:link - 标记与action - 属性一起使用(请参阅JBoss Forum)。

对于导航问题,我会将from-action标记替换为if-outcome标记,并将if-outcome后面的值返回assignTo - 和{{ 1}} - 方法

workOnTask.start

在方法中:

<page view-id="/task-list.xhtml">
  <navigation>
    <rule if-outcome="navToTask">
      <redirect view-id="/task.xhtml"/>
    </rule>
  </navigation>
</page>