This is what I have...
The email page (regemail.xhtml)
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
xmlns:h="http://java.sun.com/jsf/html"
|
xmlns:f="http://java.sun.com/jsf/core"
| template="mailtemplate.xhtml">
|
| <ui:param name="subject" value="foo registration" />
|
| <ui:define name="body">
| <p>Thank you for registering with foo.</p>
| <p>Click on this link to confirm your registration <a
href="http://www.foo.com"> foo </a></p>
| <p>Happy foo</p>
| </ui:define>
|
| </ui:composition>
The template (mailtemplate.xhtml)
| <ui:composition
xmlns="http://www.w3.org/1999/xhtml"
|
xmlns:ui="http://java.sun.com/jsf/facelets"
|
xmlns:s="http://jboss.com/products/seam/taglib"
|
xmlns:m="http://jboss.com/products/seam/mail"
|
xmlns:h="http://java.sun.com/jsf/html"
|
xmlns:f="http://java.sun.com/jsf/core">
|
| <m:message>
| <m:from name="foo" address="do-not-reply(a)foo.com"
/>
| <m:to name="#{user.firstname}
#{user.lastname}">#{user.email}</m:to>
| <m:subject>#{subject}</m:subject>
| <m:body>
| <html>
| <body>
| <ui:insert name="body">
| This is the default body, specified by the template.
| </ui:insert>
| </body>
| </html>
| <f:facet name="alternative">
| <ui:insert name="alternative">
| <h:outputText>Sorry, your mail reader doesn't support
html.</h:outputText>
| </ui:insert>
| </f:facet>
| </m:body>
| </m:message>
|
| <ui:insert name="successMessage">
| <html>
| <body>
| <p>An email has been sent to you. Please click on the link in the
email to confirm your registration.</p>
| </body>
| </html>
| </ui:insert>
| </ui:composition>
|
If I perform a renderer.render("/regemail.xhtml") it works fine. However, if I
have a NotificationBean class defined and try to perform renderer.render in a method pf
the NotificationBean, nothing happens. I do not see anything on the screen. The reason why
I want a bean is because I need to send this email asynchronously.
Notification.java
package com.foo.session;
|
| import org.jboss.annotation.ejb.Local;
| import org.jboss.seam.annotations.async.Asynchronous;
|
| @Local
| public interface Notification {
|
| // I tried with the @Asynchronous annotation also
|
| public void notifyByEmail(String emailAddress, String firstName, String lastName)
throws NotificationException;
|
|
| }
|
NotificationBean.java
package com.foo.session;
|
| import javax.ejb.Remove;
| import javax.ejb.Stateless;
|
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Out;
| import org.jboss.seam.annotations.async.Asynchronous;
| import org.jboss.seam.faces.Renderer;
|
| @Stateless
| @Name("notification")
| public class NotificationBean implements Notification {
|
| @In(create=true)
| private Renderer renderer;
|
| public void notifyByEmail(String email, String fName, String lName) throws
NotificationException {
|
| try {
| System.out.println("*************************** Before Rendered
******************************");
| String result = renderer.render("/regemail.xhtml");
| System.out.println("*********************" + result +
"*****************");
| System.out.println("*************************** Rendered
******************************");
| }
| catch (Exception e) {
| throw new NotificationException(e.getMessage());
| }
| }
|
|
| }
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4080678#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...