spring-mvc-4-视图

SpringMVC如何解析视图

spring-mvc-4-视图_第1张图片
Paste_Image.png
spring-mvc-4-视图_第2张图片
Paste_Image.png
spring-mvc-4-视图_第3张图片
Paste_Image.png

常用的视图实现类

spring-mvc-4-视图_第4张图片
Paste_Image.png

视图解析器的作用

spring-mvc-4-视图_第5张图片
Paste_Image.png

常用的视图解析器实现类

spring-mvc-4-视图_第6张图片
Paste_Image.png
spring-mvc-4-视图_第7张图片
Paste_Image.png
spring-mvc-4-视图_第8张图片
Paste_Image.png

不经过控制器,直接响应页面

1.配置springmvc.xml配置文件


    
    

2.直接在浏览器访问:http://localhost:8081/spring-mvc-helloworld/newSuccess,就可以直接访问静态success.jsp页面

3.但是这样配置后,@RequestMapping()就会失效,所以如果配置mvc:view-controlle后想要@RequestMapping仍然起作用,应该加上

    
    
    
    

自定义视图

1.首先自己实现一个View接口 HelloView.java

package lxf.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;
/**
 * 自定义视图
 * @author lxf
 */
@Component
public class HelloView  implements View{
    /**
     * 视图输出类型
     */
    @Override
    public String getContentType() {
        // TODO Auto-generated method stub
        return "text/html"  ;
    }
    /**
     * 渲染视图
     */
    @Override
    public void render(Map model, HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        // TODO Auto-generated method stub
        response.getWriter().print("hello view , time " + new Date());   
    }
}

2.在 springmvc.xml中配置视图解析器并设置优先级

    
    
    
        
    

3.修改SpringMVCTest控制器

@RequestMapping("springmvc")
@Controller
public class SpringMVCTest {
    public static final String SUCCESS = "success";
    /**
     * 测试自定义视图
     */
    @RequestMapping("/testView")
    public String testView(){
        return "helloView";
    }
}

4.访问测试:http://localhost:8081/spring-mvc-helloworld/springmvc/testView
页面输出:hello view , time Wed Aug 09 19:12:55 CST 2017

关于重定向

spring-mvc-4-视图_第9张图片
Paste_Image.png

1.修改 SpringMVCTest 控制器

    /**
     *  测试重定向
     */
    @RequestMapping(value="testRedirect")
    public String testRedirect()
    {
        System.out.println("testRedirect");
        //重定向
        return "redirect:/index.jsp";
        //内部转发
        //return "forward:/index.jsp";
    }

2.访问:http://localhost:8081/spring-mvc-helloworld/springmvc/testRedirect会跳转到 index.jsp 页面;

点击查看演示代码

你可能感兴趣的:(spring-mvc-4-视图)