Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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_Html Table - Fatal编程技术网

Java 在jsp页面中显示数据

Java 在jsp页面中显示数据,java,jsp,jpa,html-table,Java,Jsp,Jpa,Html Table,我需要在jsp页面中手动显示数据库中的数据。但它不会显示 我的实体: @Entity @NamedQuery(name="Contact.getAll", query="SELECT c FROM Contact c") public class Contact implements Serializable { private static final long serialVersionUID = 1L; @Id private String login; private String

我需要在jsp页面中手动显示数据库中的数据。但它不会显示

我的实体:

@Entity
@NamedQuery(name="Contact.getAll", query="SELECT c FROM Contact c") 
public class Contact implements Serializable {
private static final long serialVersionUID = 1L;

@Id
private String login;
private String name;
private String surname;

getters/setters/equals/hashcode
用于管理jsp的Bean:

public class DisplayDataBean {

private EntityManagerFactory emf = Persistence.createEntityManagerFactory("ContactsPU");
private EntityManager em = emf.createEntityManager();
private List<Contact> contacts = em.createNamedQuery("Contact.getAll", Contact.class).getResultList();

public List<Contact> getContacts() {
    return contacts;
}
}
公共类DisplayDataBean{
私有EntityManagerFactory emf=Persistence.createEntityManagerFactory(“ContactsPU”);
私有EntityManager em=emf.createEntityManager();
私有列表contacts=em.createNamedQuery(“Contact.getAll”,Contact.class).getResultList();
公共列表getContacts(){
返回联系人;
}
}
和jsp页面片段:

        <c:forEach var="contact" items="${DisplayDataBean.contacts}">
            <tr>
                <td><c:out value="${contact.login}"/></td>
                <td><c:out value="${contact.name}"/></td>
                <td><c:out value="${contact.surname}"/></td>
            </tr>
        </c:forEach>

你能告诉我这里有什么问题吗?提前谢谢

当我和你一起工作的时候

<sql:query var="contacts" dataSource="jdbc/contactapplication">
    SELECT * FROM contact;
</sql:query>

从联系人中选择*;
一切都很好

问题是我没有声明DisplayDataBean。 解决方案是在jsp页面中添加标记:

<jsp:useBean id="displayBean" class="web.DisplayDataBean"/>

您没有声明变量
contacts
,因此它不会显示,当您使用JSTL标记时,您使用的是变量
contacts

如果您正在使用Spring,请将此
contacts
变量添加到
ModelMap
以便可以检索

ModelMap mm = new ModelMap();
mm.put("contacts", values);
或者,如果您使用的是Servlet,则只需将此变量添加到响应参数中。
request.setAttribute(“联系人”、“值”)

您没有声明变量
contacts
,因此它不会显示,当您使用JSTL标记时,您使用的是变量
contacts

如果您正在使用Spring,请将此
contacts
变量添加到
ModelMap
以便可以检索

ModelMap mm = new ModelMap();
mm.put("contacts", values);
或者,如果您使用的是Servlet,则只需将此变量添加到响应参数中。
request.setAttribute(“联系人”、“值”)

您可能必须为您的实体提供一个物理表名。我认为区分大小写可能会导致这里的问题(“联系人”和“联系人”不一定被认为是相同的)

另外,我不是100%确定,但是
@NamedQuery
可能需要包含在
@namedquerys
中-因此实体定义可以这样开始:

@Entity
@Table(name="contact")
@NamedQueries({
    @NamedQuery(name="Contact.getAll", query="SELECT c FROM Contact c")
})
public class Contact implements Serializable {
// the rest of the class definition goes here...
如果启用了调试,则可以查看查询是否实际发出,或者在此之前是否“失败”

顺便问一下,当您说“它不会显示”时,是否意味着
c:forEach
不会呈现任何内容?它会呈现空表、空表还是什么都没有?生成输出的示例可能会有所帮助


我假设控制台/日志中没有可见的异常?

您可能需要为实体提供一个物理表名。我认为区分大小写可能会导致这里的问题(“联系人”和“联系人”不一定被认为是相同的)

另外,我不是100%确定,但是
@NamedQuery
可能需要包含在
@namedquerys
中-因此实体定义可以这样开始:

@Entity
@Table(name="contact")
@NamedQueries({
    @NamedQuery(name="Contact.getAll", query="SELECT c FROM Contact c")
})
public class Contact implements Serializable {
// the rest of the class definition goes here...
如果启用了调试,则可以查看查询是否实际发出,或者在此之前是否“失败”

顺便问一下,当您说“它不会显示”时,是否意味着
c:forEach
不会呈现任何内容?它会呈现空表、空表还是什么都没有?生成输出的示例可能会有所帮助


我假设控制台/日志中没有可见的异常?

我既不使用Spring也不使用servlet。只有3个文件。属性项应该得到联系人列表。我既不使用Spring也不使用servlet。只有3个文件。属性项应该得到联系人列表。是的,它呈现了空表。是的,它呈现了空表。