FaradayZhangChina
2016-11-12 07:19
采纳率: 15.6%
浏览 2.4k
已采纳

springmvc的model返回值jsp为何取不到这个值

最近,在写一段用户的代码,要求使用springmvc, RowMapper,jdbcTemplate的技术,我的代码段如下:
jsp页面

users.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
  <c:if test="${not empty userlist}">
  <c:forEach var="s" items="${userlist}" varStatus="status">
     <thead>
        <tr><td>用户姓名</td><td>用户密码</td></tr>
     </thead>
     <tbody>
        <tr><td>${s.user_name}</td><td>${s.user_pwd}</td></tr>
     </tbody>
  </c:forEach>
  </c:if>
  </table> 
</body>
</html>

HelloController.java

 @RequestMapping("/howareyou.do")
    public String getUserbyUserId(Model model,HttpServletRequest req){

        Long userid=(long) Integer.parseInt(req.getParameter("user_id"));
        List<User> users = userService.findAllByUserId(userid);

        model.addAttribute("userlist",users);

        return "users";
    }

UserServiceImplement.java

 @Override
    public List<User> findAllByUserId(Long user_id) {
        // TODO Auto-generated method stub
        String sql = "select * from user where user_id = ?";  
        Object[] params = new Object[] {user_id}; 
        BeanPropertyRowMapper<User> UserRowMapper = new BeanPropertyRowMapper<User>(User.class);   
        List<User> users = null;  
        /** 
         * 使用接口实现类 
         */  
        users = jdbcTemplate.query(sql, params, UserRowMapper); 
        /** 
         * 使用匿名内部类 
         * 如果UserRowMapper类只使用一次,单独为其创建一个类多余,可以使用匿名类 
         * 省略了书写一个实现类 
         */  
        users = jdbcTemplate.query(sql, params,  
                new RowMapper<User>() {  
                    public User mapRow(ResultSet rs, int rowNum) throws SQLException {  
                        User user = new User();
                        /*user.setUser_id(Long.parseLong(String.valueOf(rs.getInt("user_id"))));*/
                        user.setUser_name(rs.getString(3)); 
                        user.setUser_pwd(rs.getString(2));  
                        System.out.println("user_name is"+user.getUser_name());
                        System.out.println("user_pwd is"+user.getUser_pwd());
                        System.out.println("user_id is"+user.getUser_id());
                        return user;  
                    }  
                });  
        return (users != null && users.size() > 0) ? users : null;


    }

我用断点进入,发现在serviceImplement层,users是有值的,分别取到一个用户user的username和user_pwd的2个属性,可是到了jsp层,为何出现的是com.frame.model.User@123456的输出结果?而且,页面没有输出值。请教,应该如何写才好?谢谢!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • FaradayZhangChina 2016-11-12 07:36
    已采纳

    各位,经过我的仔细排查,终于发现此代码其实没有错误,实际是因为,jsp页面没有导入<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 这句话的缘故。问题终于解决了。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题