Code Bye

JSP页面取不到ModelAndView里面存的值~~

Controller代码:

	@RequestMapping(value="selectDepts2.do")
	public ModelAndView findDepts2() {
		 List<Dept> depts=deptService.getDpets();
		 ModelAndView mav=new ModelAndView("dept");
		 mav.addObject("depts", depts.get(0));
		 return mav;
	}

jsp页面 则是直接通过 ${depts}

整个过程都没有报错,只是页面显示出来的就是 “${depts}” 这个字符串。。
网上一直还找不到解答,求各位大侠帮帮看~~谢啦~~!


15分
先将你的 “depts” 放在controller中某个域对象的属性中(requt.setattribute(“depts”,depts)),然后通过EL表达式获取
引用 1 楼 aazbc 的回复:

先将你的 “depts” 放在controller中某个域对象的属性中(requt.setattribute(“depts”,depts)),然后通过EL表达式获取

这个方法是可以,,,但不是可以直接让modelAndView对象放进去就行吗..?

虽然不知道为什么,但是把代码换成以下就能取到了。。。
	@RequestMapping(value="selectDepts2.do")
	public ModelAndView findDepts2() {
		 List<Dept> depts=deptService.getDpets();
		 Map model=new HashMap();
		 model.put("depts", depts);
		 ModelAndView mav=new ModelAndView("dept",model);
		 return mav;
	}

引入错误的ModelAndView类也可能拿不到值。。
正确类:import org.springframework.web.servlet.ModelAndView;


20分
spring的MVC是对Servlet的封装,ModelAndView中addObject应该是对request.setAttribute方法的封装,所以在jsp中如果想以el表达式来读取数据,应该用${requestScope.depts},对应于<%=request.getAttribute(“depts”)%>

5分
你先学明白怎么用JSTL标签或者怎么用EL表达式就完事了。
引用 5 楼 forgetsam 的回复:

你先学明白怎么用JSTL标签或者怎么用EL表达式就完事了。

怎么算学明白..? 之前学习过了 servlet 和 jstl 的使用。也知道不同scope范围取值..但是ModelAndView是第一次使用

引用 4 楼 w363403269 的回复:

spring的MVC是对Servlet的封装,ModelAndView中addObject应该是对request.setAttribute方法的封装,所以在jsp中如果想以el表达式来读取数据,应该用${requestScope.depts},对应于<%=request.getAttribute(“depts”)%>

试过用 ${requestScope.depts} ,网页显示的还是 “${requestScope.depts}” 这个字符串…

楼主  你可以试试在jsp页面上加上<%@ page isELIgnored=”false” %>看看
jsp页面中加一句 <%@ page isELIgnored =”false” %>

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明JSP页面取不到ModelAndView里面存的值~~