java - 如何在JSP中显示对象的数据

标签 java spring hibernate jsp

我已通过注册表将一些用户详细信息存储到数据库(hibernate 和 spring)中。我想在单独的 JSP 页面中显示所有用户的用户详细信息。有人可以告诉我该怎么做吗?

下面是我的 Controller 代码

@Controller
public class RegisterController {

    @Autowired
    private UserDao userDao;

    @RequestMapping(value = "/registerForm.htm", method = RequestMethod.GET)
    public ModelAndView registerPage(ModelMap map) {
        User user = new User();
        map.addAttribute(user);
        return new ModelAndView("registerForm", "command", user);

    }

    @RequestMapping(value = "/registerProcess.htm", method = RequestMethod.POST)
    public ModelAndView registerUser(@ModelAttribute("user") User user, Model model) {

        model.addAttribute("userName", user.getUserName());
        model.addAttribute("password", user.getPassword());
        model.addAttribute("emailId", user.getEmailId());
        System.out.println("user is " + user);
        System.out.println("userdao is" + userDao);
        userDao.saveUser(user);
        return new ModelAndView("registerProcess", "user", user);

    }

}

userdao 内的代码

public void saveUser(User user) {

    Session session=getSessionFactory().openSession();
    Transaction tx;
    tx=session.beginTransaction();

    session.persist(user);
    tx.commit();

}

最佳答案

您应该在 GET 请求中获取要向用户显示的元素。这涉及以下步骤:

  • 拥有正确的 URL 映射和 View 来处理 GET。
  • 在将预处理您的网址的方法中获取数据。
  • 存储要作为请求属性向用户显示的数据。
  • 转发到 View (JSP)。
  • 在 View 中显示请求属性中的数据。

一个非常简单的示例,基于您当前的代码并假设存在一些方法:

@Controller
public class RegisterController {

    @Autowired
    private UserDao userDao;

    @RequestMapping(value="/registerForm.htm",method=RequestMethod.GET)
    public ModelAndView registerPage(ModelMap map){
        User user=new User();
         map.addAttribute(user);
        return new ModelAndView("registerForm","command",user); 
    }

    @RequestMapping(value="/registerProcess.htm",method=RequestMethod.POST)
    public ModelAndView registerUser(@ModelAttribute("user") User user,Model model){
        model.addAttribute("userName", user.getUserName());
        model.addAttribute("password", user.getPassword());
        model.addAttribute("emailId",user.getEmailId());
        System.out.println("user is "+user);
        System.out.println("userdao is"+userDao);
        userDao.saveUser(user);
        return new ModelAndView("registerProcess","user",user);
    }

    //this is the new method with proper mapping
    @RequestMapping(value="/userList.htm", method=RequestMethod.GET)
    public ModelAndView registerPage(ModelMap map) {
        //this method should retrieve the data for all users
        List<User> userList = userDao.getAllUsers();
        map.addAttribute("userList", userList);
        return new ModelAndView("userList", map);
    }
}

然后,在 userList.jsp 中:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>User List</title>
</head>
<body>
    List of users:
    <br />
    <table>
        <c:forEach items="${userList}" var="user">
            <tr>
                <td>${user.userName}</user>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

请注意,这是一个关于如何执行此操作的非常基本的示例。代码可以大大改进。

更多信息:

关于java - 如何在JSP中显示对象的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829989/

相关文章:

java - Estado HTTP 500 - 请求处理失败;嵌套异常是 org.hibernate.exception.SQLGrammarException : could not prepare statement

java - Java 泛型中的桥接方法。这个例子正确吗?

java - 在 servlet 中获取初始化参数

java - 如何在 tomcat 服务器启动时运行长时间运行的批处理作业?

java - 向 Spring XD 添加自定义类型转换器

java - 更改 Naturald 参数名称后出错

java - Spring 启动+ hibernate : Duplicate entry Exception while save entity

java - 从随机矩阵中的一个点查找相同元素的算法

java - 如何设置两个垂直分割 Pane ,以便拖动每个 Pane 不会影响另一个 Pane ?

java - 我可以覆盖通过组件扫描实例化的 spring bean 吗?