Spring MVC 中 怎样从一个Controller 方法跳转到另一个方法,注意是跳转,不是调用

dingjugao888 2012-11-30 11:37:58
如题 类似Struts中ActionForward 的情况
...全文
36047 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
明柽 2015-07-25
  • 打赏
  • 举报
回复
可以这样写:
/**
	 * 分页显示所有的商品的控制层
	 * @param page
	 * @param req
	 * @param resp
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="/show")
	public String show(@RequestParam("page")Integer page,HttpServletRequest req) throws Exception {
		if(page==null){
			page=1;
		}
		Pager pager=service.getPager(page);
		req.setAttribute("pager", pager);
		return "list";
	}
	/**
	 * 添加商品的控制层
	 * @param product
	 * @param req
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="/add",method=RequestMethod.POST)
	public String add(Product product,HttpServletRequest req) throws Exception{
		service.save(product);
		return show(1,req);
	}
wangzhongquan_ 2013-08-01
  • 打赏
  • 举报
回复
Aeven0311 2013-01-15
  • 打赏
  • 举报
回复
引用 5 楼 dever2011 的回复:
从一个controller跳转到另一个controller的方法?为什么要这样跳转?有什么实际的意义吗?
你废话真多 你管别人有什么用 知道就知道不知道就不知道
frog8659 2012-12-03
  • 打赏
  • 举报
回复
引用 15 楼 dingjugao888 的回复:
引用 9 楼 frog8659 的回复:Java code??1return "redirect:/XXX" 这个我试过了 ,因为项目的设置,我这样写,会在后边直接加上 .jsp的后缀 然后提示找不到该页面
这样肯定是没有问题的,你可以贴出具体代码来看看。 redirect:/XXX 这个XXX是你controler中某个方法的requestmapping,如下:

    @RequestMapping("/notice")
    public String _notice() {
        return "common/notice";
    }
比如要actionforward到这个方法的话,就应该写return "forward:/notice"; 然后最终会返回的view是common/notice 具体跳到什么页面,和你spring的配置有关。 如果是如下配置:

	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
	</bean>
那么就会跳转到/WEB-INF/jsp/common/notice.jsp 你检查下你的代码和配置吧~
dingjugao888 2012-12-03
  • 打赏
  • 举报
回复
引用 18 楼 suncaoyong 的回复:
你要实现什么功能?别跑偏了,大家回答的也会偏、、、
再简单点说就是重定向
dingjugao888 2012-12-03
  • 打赏
  • 举报
回复
引用 18 楼 suncaoyong 的回复:
你要实现什么功能?别跑偏了,大家回答的也会偏、、、
我要实现的就是在后台的 controller 方法间实现跳转,类似于Struts2中ActionForward 表达的 已经很清楚了啊,楼上 那哥们说的return "forward:/XXX" 我之前试过,这个由于项目设置问题会在后边自动添加.jsp
孙曹永 2012-12-03
  • 打赏
  • 举报
回复
你要实现什么功能?别跑偏了,大家回答的也会偏、、、
dingjugao888 2012-12-03
  • 打赏
  • 举报
回复
引用 12 楼 jason_era 的回复:
return "xxx" xxx代表你访问的Controller 路径
这个由于项目的设置到这这样返回都回在结尾自动添加.jsp, 所以该怎么解决?
dingjugao888 2012-12-03
  • 打赏
  • 举报
回复
引用 13 楼 peng_hao1988 的回复:
引用 楼主 dingjugao888 的回复:如题 类似Struts中ActionForward 的情况 奇怪的问题,你在后台如何跳转?肯定是调用另一个方法嘛,如果调用的是非响应方法调用完后得到返回值,然后再去预定的页面,如果是响应方法,执行相关业务后可以直接跳转到该方法预定的页面。
同一个Controller中我试过直接在一个方法中调用另一个方法,但是在直接传递request的时候会出现之前的request里的数据无法覆盖导致一些错误,所以我才会说是跳转。
dingjugao888 2012-12-03
  • 打赏
  • 举报
回复
引用 9 楼 frog8659 的回复:
Java code??1return "redirect:/XXX"
这个我试过了 ,因为项目的设置,我这样写,会在后边直接加上 .jsp的后缀 然后提示找不到该页面
liangtu 2012-12-03
  • 打赏
  • 举报
回复
return "redirect:***/***.do";
桃园闲人 2012-12-01
  • 打赏
  • 举报
回复
引用 13 楼 peng_hao1988 的回复:
引用 楼主 dingjugao888 的回复:如题 类似Struts中ActionForward 的情况 奇怪的问题,你在后台如何跳转?肯定是调用另一个方法嘛,如果调用的是非响应方法调用完后得到返回值,然后再去预定的页面,如果是响应方法,执行相关业务后可以直接跳转到该方法预定的页面。
哦,忽略了一点,如果别调用方法和调用者没在一个controller的确需要跳转。这种情况和前台跳转到后天响应方法一样呀。
桃园闲人 2012-12-01
  • 打赏
  • 举报
回复
引用 楼主 dingjugao888 的回复:
如题 类似Struts中ActionForward 的情况
奇怪的问题,你在后台如何跳转?肯定是调用另一个方法嘛,如果调用的是非响应方法调用完后得到返回值,然后再去预定的页面,如果是响应方法,执行相关业务后可以直接跳转到该方法预定的页面。
Cactus_hxk 2012-11-30
  • 打赏
  • 举报
回复
跳到其它页面你可以直接return 页面路径, 但是调到其它方法,没有用过, 帮顶 帮顶
dingjugao888 2012-11-30
  • 打赏
  • 举报
回复
人呢 人呢 人呢??? 都不知道吗?? 大神在哪?
dingjugao888 2012-11-30
  • 打赏
  • 举报
回复
有木有人啊
jason_era 2012-11-30
  • 打赏
  • 举报
回复
return "xxx" xxx代表你访问的Controller 路径
大川101 2012-11-30
  • 打赏
  • 举报
回复
搞定了吗?怎么解决的?!!
frog8659 2012-11-30
  • 打赏
  • 举报
回复
或者

return "forward:/XXX"
区别你懂的
frog8659 2012-11-30
  • 打赏
  • 举报
回复
return "redirect:/XXX"
加载更多回复(5)

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧