假设我有一个按钮:
<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(),它会对组件进行一些初始化。
答案 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>