欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springMVC如何将controller中数据传递到jsp页面

程序员文章站 2023-11-29 11:59:46
1> 将方法的返回值该为modelandview在返回时,将数据存储在modelandview对象中如: newmodelandview("/webin...

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 = "这个是要传递的数据";
  /*其中第一个参数为url,第二个参数为要传递的数据的key,第三个参数为数据对象。在这里要注意的是:数据是默认被存放在request中的。*/
  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"})   //modelandview中的对应的数据也会在session中存储一份

页面获取:

session:${sessionscope.message}<br/>

3 > 数据modelandview返回一个集合

该处理方式和上面的处理方式一直,因为modelandview接受的数据类型是object的,集合也是一样的处理方式

示例:

//使用modelandview对象将数据传递到前台。
//传递多个参数(不同类型的)
  @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");
   //将数据存入modelmap
   mad.addobject("message", message);
   mad.addobject(user);//默认为类名的首字母小写
   mad.addobject("users", us);
   return mad;
 }

前台页面获取方式:

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。

示例:

//使用modelmap对象将数据传递到前台。
  //传递多个参数(不同类型的)
  @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()));
   //将数据存入modelmap
   map.put("message", message);
   map.addattribute("user", user);
   map.put("users", us);
   return"/web-inf/jsp/showdata.jsp";
  }

页面调用:

request:${requestscope.message}<br/>
  session:${sessionscope.message }<br/>
  application:${applicationscope.message}<br/>
  <hr/>
  <h1>modelmap中的数据</h1>
  ${requestscope.message}<br/>
  ${requestscope.user.name}<br/>
  <p>列表</p>
  <c:foreach items="${requestscope.users}" var="u">
   ${u.name }-${u.age }-${u.birth }<br/>
  </c:foreach>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。