用ajax调用Bean的函数

时间:2013-04-17 22:22:44

标签: java email jsf

好吧,我需要调用CorreoController这是一个bean,我正在使用JSF,使用ajax 因为我需要发电子邮件,我需要制作收件箱。

 public Message[] refrescar(String correo, String password, int tipoMail)
{
    Properties prop = new Properties();
    prop.setProperty("mail.pop3.starttls.enable", "false");
    prop.setProperty(
        "mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    prop.setProperty("mail.pop3.socketFactory.fallback", "false");
    prop.setProperty("mail.pop3.port", "995");
    prop.setProperty("mail.pop3.socketFactory.port", "995");
    Session sesion = Session.getInstance(prop);

    switch(tipoMail)
    {
        case 1:try
    {
      // Se obtiene el Store y el Folder, para poder leer el
      // correo.
        Store store = sesion.getStore("pop3");
        store.connect(
            "pop.gmail.com", correo, password);
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY);

        // Se obtienen los mensajes.
        Message[] mensajes = folder.getMessages();


        folder.close(false);
        store.close();
        return mensajes;
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
            break;

        case 2:try
    {
      // Se obtiene el Store y el Folder, para poder leer el
      // correo.
        Store store = sesion.getStore("pop3");
        store.connect(
            "pop3.live.com", correo, password);
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY);

        // Se obtienen los mensajes.
        Message[] mensajes = folder.getMessages();

        // Se escribe from y subject de cada mensaje
        /*for (int i = 0; i < mensajes.length; i++)
        {
            System.out.println(
                "From:" + mensajes[i].getFrom()[0].toString());
            System.out.println("Subject:" + mensajes[i].getSubject());

            // Se visualiza, si se sabe como, el contenido de cada mensaje
            analizaParteDeMensaje(mensajes[i]);
        }*/

        folder.close(false);
        store.close();            
        return mensajes;
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
            break;
        default:break;

    }

    return null;


}

任何人都可以帮助我如何提取这些元素的menajes,以及如何在javascript中使用dinamyc方式制作表格以添加收集的信息

1 个答案:

答案 0 :(得分:0)

要在JSF中进行AJAX调用,您不需要使用JavaScript。您可以尝试以下内容。

。豆子:

@ManagedBean
@ViewScope
public class CorreoController {
    private List<Message> mensajes;

    public void refrescar(String correo, String password, int tipoMail) {
        // Your logic

        // Update the mensajes list at the end of this method
        this.mensajes = ...;
    }

    // Getters and Setters
}

xhtml页面:

<h:dataTable id="mensajeTable" value="#{correoController.mensajes}" >
    ...
</h:dataTable>

<h:commandButton value="Get mensajes" actionListener="#{correoController.refrescar}" >
    <f:ajax render="mensajeTable" />
</h:commandButton>