Hibernate 从控制器传递后无法在jsp中显示列表
我试图使用JSTL标记在JSP中显示list的值。但是什么也没有显示。我找不出问题所在。这是我在JSP中的代码Hibernate 从控制器传递后无法在jsp中显示列表,hibernate,jsp,spring-mvc,Hibernate,Jsp,Spring Mvc,我试图使用JSTL标记在JSP中显示list的值。但是什么也没有显示。我找不出问题所在。这是我在JSP中的代码 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" p
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
the length is ${fn:length(test1)}
<c:forEach var="ex" items="${test1}">
<c:out value="${ex.userid}" />
<c:out value="${ex.password}" />
</c:forEach>
这是我的DAO代码
package registration;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository("registrationDAO")
public class registrationDAOImpl implements registrationDAO{
@Autowired
public static SessionFactory getSessionFactory()
{
Configuration configuration = new Configuration().configure();
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
SessionFactory factory = configuration.buildSessionFactory(builder.build());
return factory;
}
@Override
public List<Login> getLoginInfo() {
Session session=getSessionFactory().openSession();
Query query = session.createQuery("from Login");
List test = query.list();
return test;
}
}
这是web.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
</web-app>
使用:
问题解决了。这是模型和视图类的一个重要问题。而不是导入导入org.springframework.web.servlet.ModelAndView 我的控制器从import org.springframework.web.portlet.ModelAndView导入它
现在显示了长度并正确显示了数据您应该尝试了解您的问题是在视图层还是在控制器/服务/dao中。尝试调试控制器,或者简单地记录/打印测试列表大小。或者在jsp中,使用函数长度,将test1作为参数。尽量避免使用原始类型。使列表通用。当我在控制器中打印尺寸时,它显示为3。但是当我在JSP中使用fn:length打印test1的长度时,它显示为0。我希望在控制器中通过test1的语法是正确的。可能会出错的地方。我尝试了put函数。但是JSP中test1的长度仍然是0。在我的帖子中更新了jsp代码。您需要查看代码的其他部分吗?JSP中的长度仍然是0
package registration;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "login")
public class Login {
@Id
@Basic(optional = false)
@Column(name = "userid")
private String userid;
@Column(name = "password")
private String password;
@Column(name = "role")
private String role;
public Login() {
}
public Login(String userid) {
this.userid = userid;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
</web-app>
{
Map<String, Object> modelMap = new HashMap<String, Object>();
List<Login> test=registrationDAO.getLoginInfo();
modelMap.put("test1",test);
return new ModelAndView("login",modelMap);
}