如何获得所选公司所有员工的平均工资? 我首先选择公司然后传递id并根据该ID,我将所有员工都放在那里并在表格中显示他们的信息。目标是获得该组中每个人的平均工资。
<%@page import="data.Employee"%>
<%@page import="data.Company"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<jsp:useBean id="company" type="data.Company" scope="request"/>
<% List<Employee> employees = company.getEmployees();
double sum=0.0;
%>
<table border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>Salary</td>
</tr>
<%
for(int i=0; i <employees.size(); i++){
sum += employees.get(i).getSalary();
%>
<tr>
<td><%=employees.get(i).getId()%></td>
<td><%=employees.get(i).getNom()%></td>
<td><%=employees.get(i).getSalary()%></td>
</tr>
<% } %>
</table>
//get the average salary of all employees ::: This is working based on JChris's answer
<p>Average salary of all employees in this company:<%=sum/(double)employees.size()%> </p>
//this is returning zero.
<p> New average method: <%=company.getAverageSalary()%></p>
答案 0 :(得分:1)
您可以将工资加起来然后除以员工人数:
<% List<Employee> employees = company.getEmployees();
double sum=0.0;
%>
<table border="1">
<tr>
<td>ID</td>
<td>Name</td>
<td>Salary</td>
</tr>
<%
for(int i=0; i <employees.size(); i++){
sum += employees.get(i).getSalary();
%>
<tr>
<td><%=employees.get(i).getId()%></td>
<td><%=employees.get(i).getNom()%></td>
<td><%=employees.get(i).getSalary()%></td>
</tr>
<% } %>
</table>
//get the average salary of all employees
<p>Average salary of all employees in this company:<%=sum/(double)employees.size()%> </p>
话虽如此,我建议你在走这条路之前重新考虑一下。在JSP中包含代码会严重阻碍维护它的机会,如果它超过1-2页。 您的所有业务逻辑都应该在您的代码中发生(例如在您的servlet中),并且在JSP中只显示信息。