Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每个选定项的java jsp获取列表_Java_Jsp_Jpa_Jakarta Ee_Javabeans - Fatal编程技术网

每个选定项的java jsp获取列表

每个选定项的java jsp获取列表,java,jsp,jpa,jakarta-ee,javabeans,Java,Jsp,Jpa,Jakarta Ee,Javabeans,我的目标是获得所选公司的所有员工名单。 正如您在问题末尾的jsp文件中所看到的,我得到了一个错误: {IndirectList: not instantiated} 您能帮我获取所选公司的所有员工名单吗? Company.java package analysis.data; import java.io.Serializable; import java.lang.Integer; import java.lang.String; import java.util.List; impor

我的目标是获得所选公司的所有员工名单。 正如您在问题末尾的jsp文件中所看到的,我得到了一个错误:

 {IndirectList: not instantiated}
您能帮我获取所选公司的所有员工名单吗?

Company.java

package analysis.data;
import java.io.Serializable;
import java.lang.Integer;
import java.lang.String;
import java.util.List;

import javax.persistence.*;

/**
 * Entity implementation class for Entity: Company
 *
 */
@Entity
public class Company implements Serializable {

    @Id
    @GeneratedValue
    private Integer id;

    @Column(unique=true, nullable=false) 
    private String lastname;

    @OneToMany(mappedBy="company", fetch=FetchType.LAZY)    // LAZY = fetch when needed, EAGER = fetch immediately
    private List<Employee> employees;

    private static final long serialVersionUID = 1L;

    public Company() {
        super();
    }   
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }   

    public String getLastname() {
        return this.lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname.toUpperCase();
    }

    public List<Employee> getEmployees() {
        return this.employees;
    }   
}
在我的controller.java中

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

....

        } else if (methode.equals("get") && action.equals("/detailsCompany")) {
            doDetailsCompany(request, response);
....

    private void doDetailsCompany(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        int id = Integer.valueOf(request.getParameter("id"));
        Company company = CompanyDAO.retrieveById(id);
        request.setAttribute("company", company);       
        loadJSP(urlDetailsCompany, request, response);
    }
....
在我的CompanyDAO.java中

public class CompanyDAO {

...

    public static Company retrieveById(int id) {            
            EntityManager em = GestionFactory.factory.createEntityManager();
            Company company = em.find(Company.class, id);
            em.close();
            return company;
        }

...

    public static List<Company> getAll() {
        EntityManager em = GestionFactory.factory.createEntityManager();
        Query q = em.createQuery("SELECT c FROM Company c");
        @SuppressWarnings("unchecked")
        List<Company> listCompany = q.getResultList();      
        return listCompany;
    }
}
我明白了 {间接列表:未实例化} 而不是员工名单。 我不确定我的代码这样做是否正确。

问题在于

`<%=company.getEmployees()%>`
``
getEmployees()返回一个List对象,以便JSP调用其toString函数,结果显示消息“IndirectList:未实例化”

如果您希望打印员工详细信息(即其toString方法的等效性),您可能需要执行以下操作:

`<p>Company : <% List<Employee> employees = company.getEmployees();
    for(i=0;i<employees.size();i++)%> 
        <%= employees.get(i);%>
</p>
`

`公司:整个晚上我都会读整个问题。你可怜我们吗?
<jsp:useBean id="company" type="java.util.List<analysis.data.Company>" scope="request"/>

<p>Company : <%=company.getEmployees()%></p>
`<%=company.getEmployees()%>`
`<p>Company : <% List<Employee> employees = company.getEmployees();
    for(i=0;i<employees.size();i++)%> 
        <%= employees.get(i);%>
</p>
`