commandlink primefaces with href

commandlink primefaces with href,primefaces,Primefaces,我试图使用两种不同的代码打开弹出式邮件: (1)- <p:link href="mailto:#{classManagedBean.sendEmails}" /> (2)- <p:commandlink actionListener="#{candidatManagedBean.sendEmails()}" /> <h:form id="form"> <p:link href="#{candidatManagedBean.createmai

我试图使用两种不同的代码打开弹出式邮件:

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

(2)- <p:commandlink actionListener="#{candidatManagedBean.sendEmails()}" />
<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>  
(1)——
(2)- 
“senEmails”是在classManagedBean中声明的一个方法,用于在表单提交完成时获取所有选定的电子邮件

<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>  
我遇到的问题是:

<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>  
  • 使用代码(1)所选邮件以空值进入managedBean,邮件界面弹出窗口以空邮件(作为目的地)打开

  • <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>  
    
  • 使用代码(2),所选邮件带有正确的值,但弹出窗口没有出现(因为commandLink中没有href attribute!!)

  • <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>  
    
我的问题是如何使用

<p:link> with a submit form
<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>  
带有提交表单
with href attribute

<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>  
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:

<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>  
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;
}
public String createmaito(){//private List selectedCandidates;
System.out.println(selectedCandidates);//这里我得到了selectedCandidates的空值
if(selectedCandidates!=null&&!selectedCandidates.isEmpty()){
适用于(候选人姓名:选定候选人){
lsEmail=lsEmail.concat(cand.getEmail1());
lsEmail=lsEmail.concat(“,”);
}
lsEmail=lsEmail.substring(0,lsEmail.length()-1);
结果=电子邮件;
} 
否则{
结果=”;
}       
返回结果;
}

非常感谢,

我得到了如下解决方案:

<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>  
-在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>  
<p:commandLink   actionListener="#{ManagedBean.getListeOfEmailContacts()}">
    <p:graphicImage  value="/mail.png" />
</p:commandLink>

关注
p:link
,但也要创建一个。您的问题标题表示您正在尝试解决第二个问题,您认为该问题是原始问题的解决方案。我试图编辑我的问题,以便更具体。你能再看看吗!你的问题很清楚,那不是问题所在。关于如何在
p:link
上提交表单或在
p:commandButton
上设置
href
的问题,这两个问题完全是从错误的角度解决的。选择行并更新
p:link