controller返回jsp路径为转发,会出问题!!

本文详细解释了在控制器中使用转发和重定向的区别。转发是在同一次请求内完成的,而重定向则会生成新的请求。

controller返回:

return "jsp/UserManager";//直接返回jsp页面路径,是转发,是同一次请求,无论页面执行什么请求,都会执行转发的请求

controller返回:

return "redirect:/basicInfo/getUserManager.do";//重定向,相当于一次新请求,不会出错

在SSM框架中,从控制器返回位于 `/WEB-INF/` 路径下的 `index.jsp` 页面需要通过控制器方法定义,并借助视图解析器完成跳转。由于 `/WEB-INF/` 是受保护的目录,直接通过浏览器访问该路径下的页面是不可行的,必须依赖控制器进行转发处理 [^1]。 ### 配置视图解析器 在 Spring MVC 的配置文件(如 `springmvc-servlet.xml`)中,需要定义视图解析器来确定逻辑视图名称与实际页面路径之间的映射关系。例如,若 `index.jsp` 位于 `/WEB-INF/jsp/` 目录下,则可按如下方式配置: ```xml <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> ``` 通过此配置,控制器只需返回逻辑视图名称(如 `"index"`),Spring MVC 即可根据前缀和后缀自动定位到 `/WEB-INF/jsp/index.jsp` [^2]。 --- ### 控制器方法实现页面跳转 在控制器类中,使用 `@RequestMapping` 注解定义一个方法,用于处理请求并返回逻辑视图名称。示例代码如下: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class IndexController { @RequestMapping("/index") public String toIndex() { return "index"; } } ``` 当用户访问 `/index` 路径时,控制器将返回逻辑视图名称 `"index"`,结合视图解析器的配置,最终跳转至 `/WEB-INF/jsp/index.jsp` [^2]。 --- ### 使用 ModelAndView 对象传递数据 如果需要在跳转的同时向页面传递数据,可以使用 `ModelAndView` 对象。例如,以下代码将一个字符串属性 `message` 传递到 `index.jsp` 页面: ```java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class IndexController { @RequestMapping("/index") public ModelAndView toIndex() { ModelAndView mv = new ModelAndView("index"); mv.addObject("message", "欢迎来到首页!"); return mv; } } ``` 在 `index.jsp` 中可通过 EL 表达式获取该数据: ```jsp <p>${message}</p> ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值