Springmvc中 同步/异步请求参数的传递以及数据的返回

注意: 这里的返回就是返回到jsp页面

**** controller接收前台数据的方式,以及将处理后的model 传向前台*****

1、前台传递数据的接受:传的属性名和javabean的属性相同

(1)、使用基本类型,或引用类型进行接受:

@RequestMapping(value="/select")

PublicString select(String name,int age,Model model){

// 这样这里的name,age 就是我们前台传递的参数,也是我们Javabean中的属性。

// 这样就可以向前台传值

model.addAttribute("user",user);

Return"list";

}

}

(2)、使用pojo的方式接受: 这里要求,前台属性的值要和javabean的属性名称一样

// 这种方式使用的比较多

@RequestMapping(value="select")

PublicString select(User user ,Model model){

Stringname= user.getName();

Stringage=user.getAge();

// 按照这些属性进行查询,之后将数据集合放到model中

LIst<Map<String,Object>> list= new ArrayList<Map<String,Object>>();

list="按照条件查询的结果";

model.addAttribute("userlist",list);

Return"list";

}

(3)、如果前台有相同name值的数据传递则要使用数组来接收,相同名称的可能是有这样的数值但更多的是多选框,所以我们要使用数组来接收这样的值

@RequestMapping(value="select.do")

public Stringhello(String []username,Model model){

System.out.println(username.length);

Stringname1=username[0];

Stringname2=username[1];

model.addAttribute("helloworld", "hello"+name1+name2);

return"welcome";

}

(4)、这种方式和servlet 接受请求参数的方式是相同的,因为springmvc 提供了servlet的api 所以我们可以使用HttpServletRequest request 来获取参数

@RequestMapping(value="/hello.do")

publicString hello(HttpServletRequestrequest,Model model){

String name=request.getParameter("name");

System.out.println(name);

model.addAttribute("helloworld","hello"+name);

return"welcome";

}

**** 都看到了我们上面列举了参数接受方式,但是我们发现处理后的model(数据模型)的接受都是使用Model 这个对象来传的,这也是推存使用的,但还有其他方式,其实不管使用那种方式技术实现都是一样的,参数传递具体方式:******

2、 将数据模型向前台传值:

(1)、向前台传递一个bean或基本类型的值

@RequestMapping(value="select")

// 使用model 向前台传对象

PublicString select(User user ,Model model){

Stringname= user.getId();

// 按照这些属性进行查询,之后将数据放到model中

User user="按照id获取的数据"

model.addAttribute("user",user);

Return"list";

}

(2)、向前台传list集合

@RequestMapping(value="/hello.do")

public String hello(User user,Modelmodel){

List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();

Map<String,Object> map1= newHashMap<String,Object>();

Map<String,Object> map2= newHashMap<String,Object>();

map1.put("name","name1");

map1.put("age", 1);

map2.put("name","name2");

map2.put("age", 2);

list.add(map1);

list.add(map2);

//将list集合放在model中,在前台获取这个集合并进行遍历

model.addAttribute("ulist",list);

return"welcome";

}

前台使用c标签

<c:forEach items="${ulist}" var="user" >

${user.name}

${user.age}

</c:forEach>

****前面的几种都使用了model来传值,这也是比较推存的方式,但还有几种方式在这里给大家列出来:

(3)、ModelAndView 从字面意思我们就能看出这个对象包括,数据模型和视图名称

Public ModelAndViewselect(User user){

ModelAndView mav=new ModelAndView ("view_value");

// view 可以按照上面的这样写,也可以按照下面这样写,也就是view的两种赋值方式

// mav.setViewName("view_value"); 指定视图名

mav.addObject("key1",value);

mav.addObject("key2",value);

return modelAndView ;

}

(4)、使用map 来存储model 然后向前台传值

@RequestMapping(value="/hello.do")

public String hello(User user,Map<String,Object> map){

List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();

Map<String,Object> map1= newHashMap<String,Object>();

Map<String,Object> map2= newHashMap<String,Object>();

map1.put("name","name1");

map1.put("age", 1);

map2.put("name","name2");

map2.put("age", 2);

list.add(map1);

list.add(map2);

//将list集合放在model中,在前台获取这个集合并进行遍历,map和model是很相似的。

map.addAttribute("ulist",list);

return"welcome";

}

看看花儿冲破北疆漫漫寒冬,妖娆绽放;

Springmvc中 同步/异步请求参数的传递以及数据的返回

相关文章:

你感兴趣的文章:

标签云: