我尝试使用两个不同的代码打开弹出邮件:
(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;
}
非常感谢,
答案 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 + "')");
}