Springmvc 在同一个controller和不同的controller中进行重定向re

redirect forward 在同一个controller之间进行重定向:redirect

1、我们的请求在同一个controller之间进行重定向具体代码如下:

2、实例:

前台代码:

<formaction="user/update.do" method="post">

id:<input type="text" name="id">

name:<input type="text" name="name">

sex:<input type="text"name="sex">

<inputtype="submit" value="修改">

</form>

后台代码:

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

public Stringupdate(User user){

Map<String,Object>map= new HashMap<String,Object>();

map.put("id",user.getId());

map.put("name",user.getName());

map.put("sex",user.getSex());

userService.updateUser(map);

// 这里进行重定向的关键就是,redirect:这个关键字,这个关键字后面的就是你要重定向的请求路径

// 还有就是如果是在同一controller中则不用使用"/"从根目录开始,而如果是在不同的controller则一定要从根目录开始。

return"redirect:select.do";

}

****  这里测试一下使用更目录的结果*****

/**

* 查询用户信息

*/

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

public Stringselect(Integer id,Map<String,Object> map){

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

list=userService.selectUser(id);

map.put("mylist","you value");

return"index";

}

在不同的controller之间进行重定向

1、在不同的controller之间进行重定向的时候最主要的一点就是,要制定具体controller的命名空间即RequestMapping(value="redirectval"),还要指定为根目录,如果不是根目录则同样会在同一个controller中进行查找,这样的话,找不到会报错,或错误重定向.

2、实例:

前台代码:

<formaction="user/update.do" method="post">

id:<input type="text" name="id">

name:<input type="text" name="name">

sex:<input type="text"name="sex">

<inputtype="submit" value="修改">

</form>

后台代码: 这两个后台代码是不同controller层的代码

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

public Stringupdate(User user){

Map<String,Object>map= new HashMap<String,Object>();

map.put("id",user.getId());

map.put("name",user.getName());

map.put("sex",user.getSex());

userService.updateUser(map);

// 这里进行重定向的关键就是,redirect:这个关键字,这个关键字后面的就是你要重定向的请求路径

// 注意这里要加“/”来从根目录开始,

return "redirect:/user/select.do";

}

****  这里测试一下使用更目录的结果****

/**

* 查询用户信息

*/

@RequestMapping(value="/user")

Publicclass user{

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

public Stringselect(Integer id,Map<String,Object> map){

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

list=userService.selectUser(id);

map.put("mylist","you value");

return"index";

}

}

在同一个controller之间进行转发:forward:这里不贴具体代码,,因为和上面的 重定向相同。

在不同的controller之间进行转发:forward:这个也是一样只要命名空间和根目录正确就没问题;

这里说说这个重新定向和转发过程:当我们发送请求通过处理映射器找到具体的方法,之后会return 一个值这个值就是视图名称,而当viewResolve 接收到这个视图名成时进行判断他的前缀是不是,redirect/forward 就会创建一个

RedirectView视图,并分析了该视图的渲染源码,并分析了重定向中的路径问题,参数问题,路径变量问题等常用的问题。

******重定向、转发时携带的参数*******

1、自己手动拼接,这样在 return"redirect:select.do?id=1&name="+good+"";这样就可以在重定向的那个方法中进行数据的获取,获取方式和从前台接受收据一样。

具体实例:

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

public Stringupdate(User user){

Map<String,Object>map= new HashMap<String,Object>();

map.put("id",user.getId());

map.put("name",user.getName());

map.put("sex",user.getSex());

userService.updateUser(map);

// 这里使用了转发,在书写格式上转发和重定向一样

return"forward:select.do?code=200&status=ok!";

}

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

public Stringselect(Integer id,String code,String status,Map<String,Object> map,Modelmodel){

Stringcodes=code;

String success=status;

System.out.println(codes);

System.out.println(success);

System.out.println(model.toString());

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

list=userService.selectUser(id);

map.put("mylist","you value");

return"index";

}

执行结果:

对的,坚持;错的,放弃!

Springmvc 在同一个controller和不同的controller中进行重定向re

相关文章:

你感兴趣的文章:

标签云: