你如何使用Seam页面参数?

时间:2009-09-22 21:05:28

标签: java jsf seam

我有一堆Seam表单页面;每个都有一个命令按钮,可以调用自定义实用程序类中的sendEmail()方法。该方法如下所示:

public String sendEmail(String mailFile) throws SMTPSendFailedException {
    status = "Processing email now...";
    renderer.render(mailFile);
    status = "Email sent successfully."; 
    renderer = null;

    return "/index.xhtml";
}

按钮如下所示:

<a4j:commandButton action="#{utilities.sendEmail('/form2/mail.xhtml')}" />

sendEmail()方法返回要重定向到的表单的index.xhtml页面。索引页面还包含所有表单的列表,并且是用户在第一次使用该应用程序时到达的位置。

我想在用户提交电子邮件时显示成功或失败的消息,或者如果用户通过链接访问该页面,则不显示任何内容。我会使用Seam页面参数告诉index.xhtml它收到了一条消息吗?

非常感谢您的帮助。感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用页面参数执行此操作,但最简单的方法是通过接缝FacesMessages添加消息并将其显示在index.xhtml文件中:

@In
private FacesMessages facesMessages;

[...]

facesMessages.add(Severity.INFO, "Mail sent");

<强>的index.xhtml:

<h:messages />

您还可以查看Seam navigation以重定向视图并从中添加消息。