为什么我的jsp不显示输出?

抽烟者

在运行时没有错误,并且测试输出到控制台将返回正确的数据,但是当我尝试在jsp中显示相同的数据时,没有显示任何内容?可能真的很简单,我是Spring和jsp的新手。

以下是我的jsp和DAO文件:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@page import="com.sga.app.dao.DisplayStatsDAO" %>
<%@page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="${pageContext.request.contextPath}/static/css/main.css"
rel="stylesheet" type="text/css">
<title>SGA-user stats</title>
</head>
<body>
<h2 class="displayStatsLeaderboardHeader">Your stats</h2>
<table class="displayStatsTable" border="1">
    <tr>
        <td class="displayStatsTableData">${stats.returnForename()}</td>
    </tr>
</table>
</body>
</html>


package com.sga.app.dao;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.sga.app.beans.UserBean;

@Component("displayStatsDAO")
@Transactional
@Repository
@Configuration
public class DisplayStatsDAO extends HttpServlet implements Serializable {

private static final long serialVersionUID = 1L;


@Autowired
private LocalSessionFactoryBean sessionFactory;

public void setLocalSessionFactoryBean(LocalSessionFactoryBean   sessionFactory) {
    this.sessionFactory = sessionFactory;
}

@Bean
public DisplayStatsDAO displayStatsDAO() {
    return new DisplayStatsDAO();
}

public DisplayStatsDAO() {

}

@Transactional
public String returnForename() {
    String returnValue = "";
    try {
        @SuppressWarnings("deprecation")
        Session session =        sessionFactory.getConfiguration().buildSessionFactory().getCurrentSession();
        Authentication authentication = SecurityContextHolder.getContext()
                .getAuthentication();
        String userLoggedIn = authentication.getName();
        System.out.println(userLoggedIn);
        session.beginTransaction();
        Criteria criteria = session.createCriteria(UserBean.class);
        criteria.add(Restrictions.like("username", userLoggedIn));
        List<UserBean> user = (List<UserBean>) criteria.list();
        session.getTransaction().commit();
        for (UserBean userDetails : user) {
            System.out.println("SHOW LOGGED-IN USER");
            System.out.println("Username: " + userDetails.getUsername());

            System.out.println("Name: " + userDetails.getForename() + ""
                    + userDetails.getSurname());
            returnValue = userDetails.getForename().toString();
            System.out.println(returnValue);
            return returnValue;
        }
    } catch (HibernateException e) {
        e.printStackTrace();
    }
    return returnValue;
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    RequestDispatcher rd = req.getRequestDispatcher("userstats.jsp");
    req.setAttribute("stats", returnForename());        
    rd.forward(req, resp);
}
}

编辑:这是我的控制器/服务类

@Controller
public class DisplayStatsController {

   DisplayStatsService statsService;

   @Autowired
   public void setStatsService(DisplayStatsService statsService) {
        this.statsService = statsService;
        }

   @RequestMapping(value = "/userstats", method = RequestMethod.Get)
   public String showUserStatsPage(UserBean user, BindingResult, Model 
      model) {
         if (result.hasErrors()) {
               return "error";
            }
         else {
               try {
                    statsService.showUserStats();
                   }
               catch (Exception e) {
                    e.printStackTrace();
                      return "error";
                }
      }
}
 return "userstats";
}

我的服务类别:

@Service("displayStatsService")
public class DisplayStatsService {

private DisplayStatsDAO displayStatsDAO;

@Autowired
setDisplayStatsDAO(DisplayStatsDAO displayStatsDAO) {

   this.displayStatsDAO = displayStatsDAO;
}

   public void showUserStats() {
        displayStatsDAO.returnForename();
   }
}

日志输出:

DEBUG - Listing entities:
DEBUG - com.sga.app.beans.UserBean{surname=Bates,forename=John,gir=64, homeclub=Bearsden GC, [email protected], submitCount=18, }
DEBUG - committed JDBC Connection
DEBUG - re-enabling autocommit
SHOW LOGGED-IN USER
Username: John12345
Name: JohnBates
Homeclub: Bearsden GC
John12345
Bearsden GC
John
Outside try/catch clause
Return value is John
DEBUG - Flushing Hibernate Session on transaction synchronization
DEBUG - Processing flush-time cascades
DEBUG - Dirty checking collections
DEBUG - Flushed: 0 insertions, 0 updates, 0 deletions to 1 objects
DEBUG - Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections
DEBUG - Listing entities:
DEBUG - com.sga.app.beans.UserBean{surname=Bates, username=John12345,   forename=John,homeclub=Bearsden GC, [email protected]}
DEBUG - Disconnecting session
DEBUG - Releasing JDBC connection
DEBUG - Released JDBC connection
DEBUG - HHH000163: Logical connection releasing its physical connection
DEBUG - Initiating transaction commit
DEBUG - Committing JDBC transaction on Connection 
DEBUG - Returning JDBC Connection to DataSource
DEBUG - Invoking afterPropertiesSet() on bean with name 'userstats'
DEBUG - Rendering view [org.springframework.web.servlet.view.JstlView: name 'userstats'; URL [/WEB-INF/jsps/userstats.jsp]] in DispatcherServlet with name 'dispatcher'
DEBUG - Added model object 'userBean' of type [com.sga.app.beans.UserBean] to request in view with name 'userstats'
DEBUG - Added model object 'org.springframework.validation.BindingResult.userBean' of type [org.springframework.validation.BeanPropertyBindingResult] to request in view with name 'userstats'
DEBUG - Added model object 'username' of type [java.lang.String] to request in view with name 'userstats'
DEBUG - Forwarding to resource [/WEB-INF/jsps/userstats.jsp] in InternalResourceView 'userstats'
DEBUG - Successfully completed request
抽烟者

这就是我让jsp输出数据的方式。我的Java类中有一个方法检索所需的数据并将其存储在Array中,然后将HttpServletRequest属性设置为此数组。在我的jsp中,我引用此Array,然后通过for循环将Array的每个元素输出到表列。

<!-- Table -->
<table class="displayStatsTable" border="1">
    <tbody class="displayStatsTableBody">
        <tr class="displayStatsTableTopRow">
            <th><c:out value="Forename" /></th>
            <th><c:out value="Surname" /></th>
            <th><c:out value="Average Score" /></th>
        </tr>
        <c:forEach var="stats" items="${stats}">
        <tr class="displayStatsTableDataRows">
            <td class="displayStatsTableData">${stats.forename}</td>
            <td class="displayStatsTableData">${stats.surname}</td>
            <td class="displayStatsTableData">${stats.score_avg}</td>
        </tr>           
        </c:forEach>
    </tbody>
</table>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的“导出”按钮不显示我的字段的输出

来自分类Dev

为什么我的以下程序不显示任何输出(ArrayList)?

来自分类Dev

为什么我的中缀前缀代码不显示输出

来自分类Dev

为什么JFrame不显示输出?

来自分类Dev

为什么我的div不显示内联?

来自分类Dev

为什么我的DashboardView不显示?

来自分类Dev

为什么我的PickerView不显示数据

来自分类Dev

为什么我的边界不显示?

来自分类Dev

为什么我的矩形不显示?

来自分类Dev

为什么我的结构不显示?

来自分类Dev

为什么println不显示我的数组

来自分类Dev

为什么我的图像中心不显示?

来自分类Dev

为什么我的div不显示内联?

来自分类Dev

为什么我的内容不显示?

来自分类Dev

为什么我的标签中心不显示?

来自分类Dev

为什么我的图标不显示?

来自分类Dev

为什么我的选择列表不显示?

来自分类Dev

为什么我的按钮不显示?

来自分类Dev

为什么此代码显示输出17而不显示16?

来自分类Dev

为什么echo显示命令本身而不显示命令输出

来自分类Dev

uint16_t为什么不显示所需的输出?

来自分类Dev

为什么IPython.display.Image不显示在输出中?

来自分类Dev

为什么输出不显示初始化值-1?

来自分类Dev

为什么此C ++程序不显示任何输出?

来自分类Dev

为什么在输出屏幕上不显示字符串

来自分类Dev

为什么单击按钮时javascript不显示输出

来自分类Dev

为什么我的p:progressBar不显示,只显示数字?

来自分类Dev

为什么我的p:progressBar不显示,只显示数字?

来自分类Dev

为什么我的代码显示错误的输出?