spring mvc 返回值中在jsp页面中取出类中返回值 return ModelAndView(),

20119人阅读
SpringMVC(1)
1& 将方法的返回值该为ModelAndView在返回时,将数据存储在ModelAndView对象中如:
newModelAndView("/WEBINF/jsp/showData.jsp","message",message)
其中第一个参数为url,第二个参数为要传递的数据的key,第三个参数为数据对象。
在这里要注意的是
数据是默认被存放在request中的。
@RequestMapping(value="/mad/showData_1.do")
public ModelAndView showData_1(){
String message = "这个是要传递的数据";
return new ModelAndView("/WEB-INF/jsp/showData.jsp","message",message);
前台页面获取方式:
request:${requestScope.message}
2& 可以在类的前面添加注解
@SessionAttributes({“message”,”user”})
这个注解可以设置对应的model中参数也会在session中存储一份。该注解中的参数为一个集合,
可以写多个,如上面的例子,其中message和user都是存储的数据的key.
示例程序:
@SessionAttributes({"message","user"})
页面获取:
session:${sessionScope.message}&br/&
3 & 数据modelAndView返回一个集合
该处理方式和上面的处理方式一直,因为modelAndView接受的数据类型是Object的,集合也是一样的处理方式
@RequestMapping(value="/mad/showData_2.do")
public ModelAndView showData_2(){
System.out.println("showData_2");
String message = "这个是要传递的数据";
User user = new User("张三", 12, new Date());
List&User& us= new ArrayList&User&();
us.add(new User("张三", 12, new Date()));
us.add(new User("张四", 13, new Date()));
us.add(new User("张五", 14, new Date()));
ModelAndView mad = new ModelAndView("/WEB-INF/jsp/showData.jsp");
mad.addObject("message", message);
mad.addObject(user);
mad.addObject("users", us);
前台页面获取方式:
request:${requestScope.message}&br/&
&c:forEach items="${requestScope.users }"var="u"&
${u.name }-${u.age }-${u.birth }&br/&
&/c:forEach&
4、使用modelAndView传递多个参数。
可以通过ModelAndView的mad.addObject(“message”,message);方法设置参数。
该方法中第一个参数为数据的key,第二个参数为数据对象。
也可以使用mad.addObject(user);方法
该方法中数据的参数为数据对象,数据的key为该对象的类的类名
(其中首字母小写)。
5、使用ModelMap传递多个数据到jsp中。
在方法的参数列表中添加形参 ModelMap map,spring 会自动创建ModelMap对象。
然后调用map的put(key,value)或者addAttribute(key,value)将数据放入map中,spring会自动将数据存入request。
@RequestMapping(value="/mad/showData_3.do")
public String showData_3(ModelMap map){
System.out.println("showData_3");
String message = "这个是要传递的数据";
User user = new User("张三", 12, new Date());
List&User& us= new ArrayList&User&();
us.add(new User("张三", 12, new Date()));
us.add(new User("张四", 13, new Date()));
us.add(new User("张五", 14, new Date()));
map.put("message", message);
map.addAttribute("user", user);
map.put("users", us);
return"/WEB-INF/jsp/showData.jsp";
request:${requestScope.message}/&
session:${sessionScope.message }/&
application:${applicationScope.message}/&
&ModelMap中的数据&
${requestScope.message}/&
${requestScope.user.name}/&
items="${requestScope.users}" var="u"&
${u.name }-${u.age }-${u.birth }/&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:75450次
积分:1114
积分:1114
排名:千里之外
原创:45篇
评论:12条
(1)(4)(3)(5)(2)(2)(1)(2)(6)(2)(3)(6)(8)(3)拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(388fc328f4ec4364-ua98).
重新安装浏览器,或使用别的浏览器本帖子已过去太久远了,不再提供回复功能。> 博客详情
摘要: 解决springmvc 中,在modelAndView 中addObject() 设置的只值在jsp 中用 jstl 取不到的问题
出现这种问题原因在于老的JSP 1.2 声明.
如果你用的jsp1.2版本的 web.xml 的 DTD 定义如下
&!DOCTYPE web-app PUBLIC
&"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
&"/dtd/web-app_2_3.dtd" &
&/web-app&
EL是默认关闭的。。。必须手动打开。&%@ page isELIgnored="false" %&
此方法必须在每个页面都添加指令&%@ page isELIgnored="false" %&
另一种解决方法是修改web.xml文件如下
&?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.5"&
& & xmlns="/xml/ns/javaee"&
& & xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&
& & xsi:schemaLocation="/xml/ns/javaee&
& & & & /xml/ns/javaee/web-app_2_5.xsd"&
& & &display-name&SpringMVC&/display-name&&
& & &servlet& &
& & & & &servlet-name&hello&/servlet-name& &
& & & & &servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
& & & & &load-on-startup&1&/load-on-startup& &
& & &/servlet& &
& & &servlet-mapping& &
& & & & &servlet-name&hello&/servlet-name& &
& & & & &url-pattern&/&/url-pattern& &
& & &/servlet-mapping&&
&/web-app&
人打赏支持
码字总数 2810
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥20230人阅读
Spring(3)
接上篇,结构无大变化。
新建后台代码用以测试返回类型,在这里我新建的如下:
* 项目名称:Spring3mvc demo
* Copyright ?
All Rights Reserved
package cn.org.spartacus.
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.servlet.ModelAndV
* Description: TODO
* @author hankaibo
* @version v1.0
@Controller
//添加注解,这样配置文件就可以找到它了。
public class ReturnController {
}1,测试ModelAndView类型的返回。在代码中添加如下方法:
* 项目名称:Spring3mvc demo
* Copyright ?
All Rights Reserved
package cn.org.spartacus.
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.servlet.ModelAndV
* Description: TODO
* @author hankaibo
* @version v1.0
@Controller
//添加注解,这样配置文件就可以找到它了。
@RequestMapping(&return&)
public class ReturnController {
* &p&Description: 测试一,返回ModelAndVie类型&/p&
* @return ModelAndView
@RequestMapping(value=&test1&,method=RequestMethod.GET)
public ModelAndView test1(HttpServletRequest request,HttpServletResponse response){
ModelAndView mav=new ModelAndView();
mav.setViewName(&mav&);
//设置返回的文件名
mav.addObject(&mav&, &我的返回类型是ModelAndView.&);
新建用于接受结果的前台页面mav.jsp:
&%@ page language=&java& contentType=&text/ charset=UTF-8& pageEncoding=&UTF-8&%&
&%@taglib prefix=&c& uri=&/jsp/jstl/core&%&
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&&
&meta http-equiv=&Content-Type& content=&text/ charset=UTF-8&&
&title&mav&/title&
在success.jsp中添加触发条件
&%@ page language=&java& contentType=&text/ charset=UTF-8& pageEncoding=&UTF-8&%&
&%@taglib prefix=&c& uri=&/jsp/jstl/core&%&
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&&
&meta http-equiv=&Content-Type& content=&text/ charset=UTF-8&&
&title&hello world&/title&
Hello world!
&c:redirect url=&/app/return/test1& /&
地址栏输入测试,完成。
最后完整版如下,Java代码:
* 项目名称:Spring3mvc demo
* Copyright &
All Rights Reserved
package cn.org.spartacus.
import java.util.M
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.springframework.stereotype.C
import org.springframework.ui.M
import org.springframework.ui.ModelM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.servlet.ModelAndV
import org.springframework.web.servlet.V
* Description: TODO
* @author hankaibo
* @version v1.0
@Controller
// 添加注解,这样配置文件就可以找到它了。
@RequestMapping(&return&)
public class ReturnController {
* Description: 测试一,返回ModelAndVie类型
* @return ModelAndView
@RequestMapping(value = &test1&, method = RequestMethod.GET)
public ModelAndView test1(HttpServletRequest request, HttpServletResponse response) {
ModelAndView mav = new ModelAndView();
mav.setViewName(&return/mav&); // 设置返回的文件名
mav.addObject(&mav&, &我的返回类型是ModelAndView.&);
* Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面
* @return Model
@RequestMapping(&test2&)
public Model test2(Model model) {
model.addAttribute(&model&, &我的返回类型是Model&);
* Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面
* @return ModelMap
@RequestMapping(&test3&)
public ModelMap test3(ModelMap modelMap) {
modelMap.addAttribute(&modelMap&, &我的返回类型是ModelMap&);
return modelM
* Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面
* @return Map
@RequestMapping(&test4&)
public Map test4(Map map) {
map.put(&map&, &我的返回类型是Map&);
* &p&Description: TODO 返回的页面可以为pdf,excel等。&/p&
* @return View
@RequestMapping(&test5&)
public View test5(){
* &p&Description: 跳转到界面为 类路径@RequestMapping的值+方法@RequestMapping的值组成的页面&/p&
* @return void
@RequestMapping(&test6&)
public void test6(Map&String,Object& map){
map.put(&void&,&我的返回类型是void&);
* &p&Description: TODO&/p&
* @return String
@RequestMapping(&test7&)
public String test7(Map&String,Object& map){
map.put(&string&, &我的返回类型是String&);
return &return/string&;
jsp代码如下:
&%@ page language=&java& contentType=&text/ charset=UTF-8& pageEncoding=&UTF-8&%&
&%@taglib prefix=&c& uri=&/jsp/jstl/core&%&
&!DOCTYPE html PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN& &http://www.w3.org/TR/html4/loose.dtd&&
&meta http-equiv=&Content-Type& content=&text/ charset=UTF-8&&
&title&hello world&/title&
Hello world!
&c:redirect url=&/app/return/test1& /&
&c:redirect url=&/app/return/test2& /&
&c:redirect url=&/app/return/test3& /&
&c:redirect url=&/app/return/test4& /&
&c:redirect url=&/app/return/test5& /&
&c:redirect url=&/app/return/test6& /&
&c:redirect url=&/app/return/test7& /&
&/html&最后附上代码结构图:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:180666次
积分:1333
积分:1333
排名:千里之外
原创:14篇
转载:17篇
评论:50条
(3)(7)(5)(5)(2)(2)(1)(4)(2)

我要回帖

更多关于 springmvc ajax返回值 的文章

 

随机推荐