问题描述:在controller用ModelAndView传值到jsp页面,jsp页面使用${user2}获取不到值。(项目是maven项目)
请问一下这是什么情况呀,在网上找了很久,还是没找到答案。
这是controller部分
@RequestMapping("/list") public ModelAndView queryUserList() { List<User> userList = userService.queryUserList(); User user2 = userList.get(0); for (User user : userList) { System.out.println("name="+user.getName()); } ModelAndView model = new ModelAndView(); // model.addAttribute("user2", user2.getName()); model.addObject("user2", user2.getName()); model.setViewName("my"); ModelMap modelMap = model.getModelMap(); String str = (String) modelMap.get("user2"); System.out.println("user2 = "+str); return model; }
这是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> <script src="../js/jquery-3.2.1.min.js"></script> <script> window.onload = function() { getUserList(); } function getUserList() { var s = "${pageContext.request.contextPath}/user/list"; console.log(s); $.post("${pageContext.request.contextPath}/user/list", function( data) { alert("aa:"+data); }, "json"); } </script> </head> <body> ${user2} </body>
这是web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
在引入的部分加个东西就可以了,我忘了引入什么来着
是<%@ page isIgnoreEl="false" %>这个吗?
@studyBlogs 是的,你试一下,可以么?
@会吃猫的鱼 <%@ page isELIgnored="false" %>
@studyBlogs <%@ page isELIgnored="false" %>
@会吃猫的鱼: 我昨天好像试了,没用,我今天再试试
@studyBlogs <%@ page isELIgnored="false" %>这个吧?
@studyBlogs 手机不好使,粘贴不出来,isELIgnored=false
@会吃猫的鱼: 刚试了,没有作用
@会吃猫的鱼: 如果不是maven项目,那个el表达式是有作用的,但在maven项目中不知道为什么不行,是不是少了什么东西?
@studyBlogs 你把pom的依赖在网上找一个放进去试试,底下加个build,你百度一下。
@会吃猫的鱼: 这是jsp页面代码:
<body>
aaaa:${user.id}
aaaa:${a}
</body>
这是控制台response信息:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script src="../js/jquery-3.2.1.min.js"></script> <script> window.onload = function() { getUserList(); } function getUserList() { var s = "/user/list"; console.log(s); $.post("/user/list", function( data) { alert("aa:"+data); }, "json"); } </script> </head> <body> aaaa:1 aaaa:jjj </body> </html>
在控制台中有数据,页面上没有
@studyBlogs: pom文件里的jstl的依赖加了吗?
@会吃猫的鱼: 加了
modelMap里面有user2么?
put方法不需要么?modelMap.put("user2",user2.getName());
model.addObject("user2", user2.getName());这里已经赋值了