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