java - 使用 Seam 中的方法进行重定向

标签 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>

我不明白如何在 Java 中的 TaskAssigner.assignTo() 中做到这一点。我需要访问 Seam 组件,对吧?我需要重定向到/task.xhtml 并根据需要设置参数 taskId,并运行 workOnTask.start() 对组件进行一些初始化。

最佳答案

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

对于导航问题,我将用 if-outcome 标签替换(或组合)from-action 标签,并返回 if-outcome 后面的值assignToworkOnTask.start 方法中。

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

在方法中:

public String assignTo(User u)
{
    [...]
    // in case of success
    return "navToTask";
}

关于java - 使用 Seam 中的方法进行重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18490824/

相关文章:

java - Selenium:两个不同的浏览器返回两个不同的 xpath

java - 在 JBoss 7 Java EE 项目中使用 iText

java - JBoss Developer Studio 与 MySQL 的集成问题

java - 具有常规数据库操作的多用户 Web 应用程序

java - 当我点击 Android 应用程序中的搜索按钮时,如何更新我的 View ?

java - 是否有可能执行比线程池中的线程更多的请求?

jsf - 在 Seam 测试中手动调用 JSF 验证

jsf - 使用a4j :repeat or ui:repeat inside rich:dataTable doesn't render radio buttons properly

java - PDF Java 打印 : job sent in printer jobs queue but nothing prints

java - 创建和验证签名数据时出错