无法使用数据表从jsf发送邮件,

时间:2014-01-27 17:27:10

标签: jsf

     public void approveVacation() throws AddressException,MessagingException
     String emplname=this.getEmployeeName();

    session = FacesContext.getCurrentInstance().getExternalContext()
        .getSessionMap();

    VacationDTO vacation=new VacationDTO();
    vacation.setLeaveId(this.getLeaveId());
    vacation.setLeaveDescriptions(this.getLeaveDescriptions());
    vacation.setLeaveStartDate(this.getLeaveStartDate());
    vacation.setEmployee(getEmployeeService().getUserByEmployeeId(getEmployeeId()));

    vacation.setIsApproved((byte)1);
    getVacationService().approveVacation(vacation);
    String to=vacation.getEmployee().getEmployeeEmailAddress();
    String name=vacation.getEmployee().getEmployeeName();
    getVacationService().approveVacation(vacation);
    Util.sendMail(to, "Hi"+name,
            "Your vacation have been approved");
  
    

这是我使用List ....的Xhtml页面。

  
  <h:form>


            <h:dataTable headerClass="header" rowClasses="oddRow,evenRow" value="#{approveVacationBean.vacationList}"
                    var="list">
                     <h:column>
                        <f:facet name="header">Employee Id</f:facet>
                    #{list.employee.employeeId}
                </h:column>
                     <h:column>
                        <f:facet name="header">Employee Name</f:facet>
                    #{list.employee.employeeName}
                </h:column>

                  <h:column>
                        <f:facet name="header">Leave Applied</f:facet>
                    #{list.leaveStartDate}

                </h:column>
                    <h:column>
                        <f:facet name="header">Leave Start Date</f:facet>
                    #{list.leaveStartDate}

                </h:column>


                    <h:column>
                        <f:facet name="header">Leave End Date</f:facet>
                    #{list.leaveEndDate}
                </h:column>
                    <h:column>
                        <f:facet name="header">No of days</f:facet>
                    #{list.leaveEndDate}


</h:column>
<h:column>
<f:facet name="header">Paid Leave Balence</f:facet>
  #{list.leaveBalance}
  </h:column>

                  <h:column>
                  <f:facet name="header">Leave  Description</f:facet>
                  #{list.leaveDescriptions}


                  </h:column>
                <h:column>
                        <f:facet name="header">Comment</f:facet>
                    <h:inputTextarea ></h:inputTextarea>
                </h:column>
                <h:column>
                        <f:facet name="header"></f:facet>
                <h:commandButton value="Approve"/>
                <h:commandButton value="Reject"/>
                </h:column>

                </h:dataTable>

我在selectiong特定行按钮中遇到问题。

很多次称为SER的方法...我使用getVacationList()来显示列表,但没有邮件发送给特定员工

1 个答案:

答案 0 :(得分:1)

首先,将approveVacation方法放在approveVacationBean中。

然后更改方法以接受列表作为参数(我猜它是VacationDTO)。

最后,您应该将commandButton与approveVacation方法链接:

<h:commandButton value="Approve" ajax="false" action="#{approveVacationBean.approveVacation(list)}"/>

您的approveVacation方法应如下所示:

public void approveVacation(VacationDTO vacation) throws AddressException,MessagingException {

vacation.setIsApproved((byte)1);
getVacationService().approveVacation(vacation);
String to=vacation.getEmployee().getEmployeeEmailAddress();
String name=vacation.getEmployee().getEmployeeName();
getVacationService().approveVacation(vacation);
Util.sendMail(to, "Hi"+name,
        "Your vacation have been approved");

}