【问题标题】:java get average for all items in a selected categoryjava获取所选类别中所有项目的平均值
【发布时间】:2017-06-22 18:27:36
【问题描述】:

如何获取所选公司所有员工的平均工资? 我首先选择公司,然后传递 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>

【问题讨论】:

  • 回答了你之前的问题,这个问题也应该得到回答,还是我错过了什么?我的意思是,你有一个Company 的实例,可以简单地调用company.getAverageSalary()。无需从员工导航到其公司。 stackoverflow.com/a/42058263/7492402
  • @P.Merkle 我的 JSP 中有 company.getAverageSalary(),它返回 0.0 ,但是 JChrist 的答案也在同一页面上,它返回了正确的答案。怎么了?这应该如何纠正?
  • 如果不知道您的 company 对象来自哪里,这很难说。你是通过CompanyDTO.getAll()加载的吗?
  • @P.Merkle 我更新了我的代码,你会看到我导入的内容和使用的 bean,以及 JSP 代码。代码现在包含 JChrist 提供的答案,这符合他的建议,但我在最后一行中输入的第二种方法不会返回相同的平均值,它返回零。

标签: java jsp


【解决方案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 中只显示信息。

【讨论】:

  • 同意,最好是豆子。
  • 如何在我的 Company.java 中执行此操作并将其作为 bean 导入?你能帮忙吗?
  • 对于 JSP,您可以查看 Oracle 的 Java EE 5 JavaBeans 组件:docs.oracle.com/javaee/5/tutorial/doc/bnair.html 虽然我建议转到 Java Server Faces (JSF) javaserverfaces.java.net
  • 我正在查看此链接,我还是个新手,如果您能就我的问题用这种方法给出答案,我将不胜感激。谢谢
猜你喜欢
  • 2016-08-04
  • 1970-01-01
  • 2012-03-18
  • 2022-11-15
  • 2021-12-09
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
相关资源
最近更新 更多