一、自定义视图
1. 自定义一个视图HelloView.java,使用@Component注解交给Spring IOC容器处理
1 package com.study.springmvc.views;
2
3 import java.util.Date;
4 import java.util.Map;
5
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8
9 import org.springframework.stereotype.Component;
10 import org.springframework.web.servlet.View;
11 /**
12 * 自定义视图:
13 * 把定义好的视图交给Spring IOC容器处理
14 * @author lgs
15 *
16 */
17 @Component
18 public class HelloView implements View{
19
20 public String getContentType() {
21 return "text/html";
22 }
23
24 public void render(Map<String, ?> model, HttpServletRequest request,
25 HttpServletResponse response) throws Exception {
26 response.getWriter().print("hello view, time: " + new Date());
27 }
28
29 }
2. 在springmvc.xml里面配置视图 BeanNameViewResolver 解析器: 使用自定义视图的名字来解析视图
1 <!-- 配置视图 BeanNameViewResolver 解析器: 使用自定义视图的名字来解析视图 -->
2 <!-- 通过 order 属性来定义视图解析器的优先级, order 值越小优先级越高 -->
3 <bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
4 <property name="order" value="100"></property>
5 </bean>
3.编写handle类SelfDefineViewTest.java
1 package com.study.springmvc.handlers;
2
3 import org.springframework.stereotype.Controller;
4 import org.springframework.web.bind.annotation.RequestMapping;
5
6 /**
7 * 自定义视图测试
8 * @author lgs
9 *
10 */
11 @RequestMapping("/selfDefineViewTest")
12 @Controller
13 public class SelfDefineViewTest {
14
15 @RequestMapping("/testView")
16 public String testView(){
17 System.out.println("testView");
18 return "helloView";
19 }
20 }
4. 在index.jsp编写测试链接
1 <!--自定义视图测试 begin -->
2 <a href="selfDefineViewTest/testView">Test View</a>
3 <br><br>
4 <!--自定义视图测试 end -->
5. 效果图
二、重定向/转发
• 一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名处理
• 如果返回的字符串中带 forward: 或 redirect: 前缀时,SpringMVC 会对他们进行特殊处理:将 forward: 和redirect: 当成指示符,其后的字符串作为 URL 来处理
– redirect:success.jsp:会完成一个到 success.jsp 的重定向的操作
– forward:success.jsp:会完成一个到 success.jsp 的转发操作
1. 编写handle类RedirectForwardTest.java
1 package com.study.springmvc.handlers;
2
3 import org.springframework.stereotype.Controller;
4 import org.springframework.web.bind.annotation.RequestMapping;
5
6 /**
7 * 重定向和转发
8 *
9 * @author lgs
10 *
11 */
12 @RequestMapping("/redirectForwardTest")
13 @Controller
14 public class RedirectForwardTest {
15
16
17 @RequestMapping("/testRedirect")
18 public String testRedirect() {
19 System.out.println("testRedirect");
20 return "redirect:/index.jsp";
21 }
22 }
2. 在index.jsp编写测试链接
1 <!-- 重定向和转发 begin -->
2 <a href="redirectForwardTest/testRedirect">Test Redirect</a>
3 <!-- 重定向和转发 end -->
3.点击链接以后重定向到index.jsp顶部