将对象从控制器类转移到jsp文件

时间:2016-07-21 06:03:25

标签: java jsp spring-mvc model-view-controller controller

我正在使用spring mvc开发电子商务商店。突然之间,我需要在控制器类的jsp文件(视图)中使用一些信息。在控制器类中,我创建一个ModelAndView对象,并使用addAttribute在我的jsp文件中使用objext。然后我卡住了。我无法在jsp文件中使用该对象。

嗨,这是我的用户类 // package com.ecommerce.demo

package com.ecommerce.demo;

import javax.persistence.*;

@Entity
@Table(name="USER")
public class User {
    @Id 
    private String userName;
    private String userPassword;

    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserPassword() {
        return userPassword;
    }
    public void setUserPassword(String userPassword) {
        this.userPassword = userPassword;
    }


}

这是我的控制器类

package com.ecommerce.controller;

import java.io.IOException;
import java.util.List;
import javax.websocket.Session;

import org.hibernate.*;
import org.hibernate.cfg.*;
import org.json.JSONArray;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.ecommerce.demo.User;

@Controller
@RequestMapping(value="mainPageController")
public class MainPageController {

    @RequestMapping(value="/mainPage.html")
    public ModelAndView getLogInForm(@ModelAttribute("user") User userInput, BindingResult result) throws IOException {

        List<User> userDatabase = null;

        userDatabase = session.createQuery("from User").list();

        session.beginTransaction();         
        session.close();

        ModelAndView model = new ModelAndView("MainPage");
        model.addObject("userNameAndPasswordList", userDatabase);       

        return model;
    }

}

现在如何在mainPage.jsp文件中打印userNameuserPassword

<%@ page import="com.ecommerce.demo.User" %>

<%
    Usinf java code(i.e for loop)
    I need to print all userName and userPassword of user class here. 
%>

3 个答案:

答案 0 :(得分:0)

您应该像这样编写mainPage.jsp并避免使用其中的java代码:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
    <c:forEach items="${userNameAndPasswordList}" var="user">
        <tr>
            <td>${user.userName}</td>
            <td>${user.userPassword}</td>
        </tr>
    </c:forEach>
</table>

答案 1 :(得分:0)

使用以下代码获取和打印数据。

在jsp中导入JSTL标记

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>


<table>
    <c:if test="${userNameAndPasswordList!= null}">
                    <c:forEach items="${userNameAndPasswordList}" var="user">
                        <tr>
                            <td><c:out value="${user.userName}" /></td>
                            <td><c:out value="${user.userPassword}" /></td> 
                        </tr>
                    </c:forEach>
                </c:if>
</table>

答案 2 :(得分:0)

使用JSTL在JSP文件中打印结果。

在这种情况下,您需要在JSTL中使用foreach标记

此处,您的结果位于对象12 list_number_1.10 5.5 5.5 5.5 90 90 90 Pre-existing data in file 1.10 12 list_number_1.12 5.6 5.6 5.6 90 90 90 Pre-existing data in file 1.12

使用$语法,您可以访问对象的数据。

userNameAndPasswordList