commandlink primefaces with href

时间:2016-01-13 11:33:40

标签: primefaces

我尝试使用两个不同的代码打开弹出邮件:

(1)- <p:link  href="mailto:#{classManagedBean.sendEmails}" />

(2)- <p:commandlink actionListener="#{candidatManagedBean.sendEmails()}" />
&#34; senEmails&#34;是在classManagedBean中声明的方法,以便在完成表单提交时获取所有选定的电子邮件。

我在以下情况下强调的问题:

  • 使用代码(1)所选邮件带有空值来到managedBean,并打开一个带有空邮件(作为目标)的邮件界面弹出

  • 使用代码(2)所选邮件带有正确的值,但弹出窗口没有显示(因为在commandLink中没有href属性!!)

我的问题是如何使用

<p:link> with a submit form

<p:commandLink> with href attribut

Xhtml:

<h:form id="form">
    <p:link href="#{candidatManagedBean.createmaito()}">
        <p:graphicImage width="25" value="ecrire.png"  height="25" alt="envoyer"/>
    </p:link>
</h:form> 



     <p:dataTable id="listCandidat"  
                  value="#{candidatManagedBean.listCandidat}"
                             emptyMessage="0 candidat trouvé" 
                             var="item" 
                             paginator="true" rows="15" paginatorPosition="bottom" 
                             rowKey="#{item.idCandidat}"
                             paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"  
                             lazy="true"
                             selection="#{candidatManagedBean.selectedCandidates}"
                             >


        <p:ajax event="rowSelect" listener="#{candidatManagedBean.onRowSelect}" />

        <p:column exportable="false" selectionMode="multiple" style="width:16px;text-align:center"/>                     

        {<p:column>...</p:column>}           

    </p:dataTable>  

managedBean:

public String createmaito() { //  private List<Candidat> selectedCandidates;

        System.out.println(selectedCandidates);//here i got a null value of selectedCandidates
        if (selectedCandidates != null && !selectedCandidates.isEmpty()) {
            for (Candidat cand : selectedCandidates) {
                lsEmail = lsEmail.concat(cand.getEmail1());
                lsEmail = lsEmail.concat(",");
            }
          lsEmail=  lsEmail.substring(0, lsEmail.length()-1);          
          result =  lsEmail;


        } 
        else {            
          result = "";
        }       
        return result;
}

非常感谢,

1 个答案:

答案 0 :(得分:0)

我得到的解决方案如下:

-In XHTML:

<p:commandLink   actionListener="#{ManagedBean.getListeOfEmailContacts()}">
    <p:graphicImage  value="/mail.png" />
</p:commandLink>

- 在托管bean中:

public void getListeOfEmailContacts() {
    /* instruction to get the ListOfContacts ...*/

    RequestContext.getCurrentInstance().execute("window.open(href ='mailto:" + ListOfContacts + "')"); 
 }