怎么从一个View中跳转到另一个controller跳转到jsp

> wycdavid的博客详情
摘要: ios开发navigationController pushViewController 方式多次跳转 怎么返回到最上层,怎么返回到指定的某一层
以前一直有个很疑惑的问题没有搞清楚
关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一级页面跳转到了二级页面,然后从二级页面跳转到了三级页面,依次类推。,如果一级一级的返回我知道是没有问题的,调用navigationController&popViewControllerAnimated就行了。。但是某些情况下我可能想要马上回到主页面,而不是一级一级的返回(如果有很多层会很累的),那该怎么办呢?
返回根页面vc用 :
[self.navigationController popToRootViewController]
返回指定的某个vc用下面(通过index定位)&
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];
或(通过class定位)
for (UIViewController *controller in self.navigationController.viewControllers) {
if ([controller isKindOfClass:[你要跳转到的Controller class]]) {
[self.navigationController popToViewController:controller animated:YES];
人打赏支持
码字总数 1639
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区iPhone开发中从一个视图跳到另一个视图有三种方法:
1、self.view addSubView:view 、self.window addSubView,需要注意的是,这个方法只是把页面加在当前页面。此时在用self.navigationControler.pushViewController和 pushViewController&是不行的。要想使用pushViewController和popViewController进行视图间的切换,就必须要求当前视图是个NavigationController。
2、就是使用self.navigationControler pushViewController和popViewController来进行视图切换的,pushViewController是进入到下一个视图,popViewController是返回到上一视图。
3、没有NavigationController导航栏的话,使用self.presentViewController和self.dismissModalViewController。具体是使用可以从文档中详细了解。
4、要想使用pushViewController和pushViewController来进行视图切换,首先要确保根视图是NavigationController,不然是不可以用的。这里提供一个简单的方法让该视图或者根视图是NavigationController。自己定义个子类继承UINavigationController,然后将要展现的视图包装到这个子类中,这样就可以使这个视图是个NavigationController了。提供的这个方法有很好的好处,就是可以统一的控制各个视图的屏幕旋转。
阅读(...) 评论()19732人阅读
spring(12)
【PK亲测】
能正常跳转的写法如下:
return &forward:aaaa/bbbb.do&;
return &redirect:aaaa/bbbb.do&;
return new ModelAndView(&forward:bbbb.do&, null);
return new ModelAndView(&redirect:bbbb.do&, null);
&WEB-INF/web.xml 配置如下
&servlet-name&Spring-DispatcherServlet&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:mescrow-appContext.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&Spring-DispatcherServlet&/servlet-name&
&url-pattern&*.do&/url-pattern&
&/servlet-mapping&
SpringMVC从Controller跳转到另一个Controller
1. 需求背景
&&& 需求:spring MVC框架controller间跳转,需重定向。有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。
本来以为挺简单的一件事情,并且个人认为比较常用的一种方式,一百度全都有了,这些根本不是问题,但是一百度居然出乎我的意料,一堆都不是我想要的结果。无奈啊,自己写一篇比较全都供以后大家一百度吧,哈哈哈。。。是这些写的不是很全都人们给了我写这篇博客的动力。
2. 解决办法
&&& 需求有了肯定是解决办法了,一一解决,说明下spring的跳转方式很多很多,我这里只是说一些自我认为好用的,常用的,spring分装的一些类和方法。
&&& (1)我在后台一个controller跳转到另一个controller,为什么有这种需求呢,是这样的。我有一个列表页面,然后我会进行新增操作,新增在后台完成之后我要跳转到列表页面,不需要传递参数,列表页面默认查询所有的。
&&&&&&& 方式一:使用ModelAndView
&&&&&&& return new ModelAndView(&redirect:/toList&);
&&&&&&& 这样可以重定向到toList这个方法
&&&&&&& 方式二:返回String
&&&&&&&&&&&&&&&&&&& return &redirect:/ toList &;
&&&&&&& 其它方式:其它方式还有很多,这里不再做介绍了,比如说response等等。这是不带参数的重定向。
&&& (2)第二种情况,列表页面有查询条件,跳转后我的查询条件不能丢掉,这样就需要带参数的了,带参数可以拼接url
&&&&&&& 方式一:自己手动拼接url
&&&&&&&&&&&&&&&&&&& new ModelAndView(&redirect:/toList?param1=&+value1+&?m2=&+value2);
&&&&&&&&&&&&&&&&&&& 这样有个弊端,就是传中文可能会有乱码问题。
&&&&&&& 方式二:用RedirectAttributes,这个是发现的一个比较好用的一个类
&&&&&&&&&&&&&&&&&&& 这里用它的addAttribute方法,这个实际上重定向过去以后你看url,是它自动给你拼了你的url。
&&&&&&&&&&&&&&&&&&& 使用方法:
&&&&&&&&&&&&&&&&&&&& attr.addAttribute(&param&, value);
&&&&&&&&&&&&&&&&&&& return &redirect:/namespace/toController&;
&&&&&&&&&&&&&&&&&&& 这样在toController这个方法中就可以通过获得参数的方式获得这个参数,再传递到页面。过去的url还是和方式一一样的。
&&& (3)带参数不拼接url页面也能拿到值(重点是这个)
&&&&&&&&&&& 一般我估计重定向到都想用这种方式:
&&&&&&&&&&& @RequestMapping(&/save&)
&&& public String save(@ModelAttribute(&form&) Bean form,RedirectAttributes attr)
&&&&&&&&&&&&&&&&&& throws Exception {
&&&&&&& String code =& service.save(form);
&&&&&&& if(code.equals(&000&)){
&&&&&&&&&&& attr.addFlashAttribute(&name&, form.getName());&
&&&&&&&&&&& attr.addFlashAttribute(&success&, &添加成功!&);
&&&&&&&&&&& return &redirect:/index&;
&&&&&&& }else{
&&&&&&&&&&& attr.addAttribute(&projectName&, form.getProjectName());&
&&&&&&&&&&& attr.addAttribute(&enviroment&, form.getEnviroment());&
&&&&&&&&&&& attr.addFlashAttribute(&msg&, &添加出错!错误码为:&+rsp.getCode().getCode()+&,错误为:&+rsp.getCode().getName());
&&&&&&&&&&& return &redirect:/maintenance/toAddConfigCenter&;
@RequestMapping(&/index&)
&&& public String save(@ModelAttribute(&form&) Bean form,RedirectAttributes attr)
&&&&&&&&&&&&&&&&&& throws Exception {
&&&&&&&&&&& return &redirect:/main/list&;
页面取值不用我说了吧,直接用el表达式就能获得到,这里的原理是放到session中,session在跳到页面后马上移除对象。所以你刷新一下后这个值就会丢掉。
&&& 最底层还是两种跳转,只是spring又进行了封装而已,所以说跳转的方式其实有很多很多种,你自己也可以封一个,也可以用最原始的response来,也没有问题。好了,就到这儿。
&&& 其实也没有什么,但是知道了这个就很简单了,之前没搞懂,现在搞懂了,和大家分享。有问题的给我留言。
& Spring MVC 中,我们在返回逻辑视图时,框架会通过 viewResolver 来解析得到具体的 View,然后向浏览器渲染。假设逻辑视图名为 hello,通过配置,我们配置某个 ViewResolver 如下:&
&class=&org.springframework.web.servlet.view.InternalResourceViewResolver&&&
&&&&&&&&假如逻辑试图名为&&hello&,因此&viewResolver&将解析成&/WEB-INF/jsp/hello.jsp&&
&&&&&name=&order&&value=&10&&&&
&&&&&name=&prefix&&value=&/WEB-INF/jsp/&&&&
&&&&&name=&suffix&&value=&.jsp&&&&
&&&&&&& 实际上,框架还是通过 forward 的方式转发到了 /WEB-INF/jsp/hello.jsp。如果逻辑视图名是 /hello,实际还是转发到了 /WEB-INF/jsp/hello.jsp,即 /WEB-INF/jsp//hello.jsp 等同于 /WEB-INF/jsp/hello.jsp。&
&&&&&&& 现在有个问题,如果 /hello 就是某个 controller 的映射,我想转发到这个 controller,怎么办?我们可以通过forward 前缀来达到转发到其它资源的目的:&
Java代码&&
public&String&handle()&{&&
&&&&return&&forward:/hello&;&&
&&&&&&& 同理,如果我们想重定向到某个资源,我们可以通过&redirect 前缀来达到重定向到其它资源的目的:&
Java代码&&
public&String&handle()&{&&
&&&&return&&redirect:/hello&;&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1456073次
积分:12145
积分:12145
排名:第853名
原创:83篇
转载:407篇
评论:123条
(12)(2)(1)(1)(1)(2)(11)(4)(8)(4)(9)(3)(11)(4)(8)(11)(2)(11)(1)(5)(3)(2)(4)(24)(24)(8)(1)(3)(5)(2)(1)(8)(3)(3)(1)(9)(16)(11)(3)(1)(1)(1)(1)(1)(1)(5)(1)(2)(20)(19)(2)(7)(19)(8)(8)(25)(24)(29)(8)(1)(6)(1)(1)(26)(10)(1)(12)(7)2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 viewcontroller 跳转 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信