보다
WebMVC 모듈은 JSP, Freemarker, Velocity, Text, HTML, JSON, Binary, Forward, Redirect, HttpStatus 등을 포함한 다양한 보기 기술을 지원합니다. 사용자 정의 보기는 IView 인터페이스 확장
Controller를 통해 구현할 수도 있습니다. view 표현 메소드
- 는 IView 인터페이스 유형을 반환합니다.
- 는 문자열을 통해 뷰 유형을 표현합니다.
- 에는 반환 값이 없거나 반환 값이 비어 있으면 현재 RequestMapping 경로에 해당하는 JspView 보기가 사용됩니다.
파일 경로 구성
컨트롤러 뷰 파일의 기본 경로는 '/'로 시작하고 끝나야 하며, 기본값은 /WEB-INF/templates/입니다.
ymp.configs.webmvc.base_view_path=/WEB-INF/templates/
View 객체 작업 예시
뷰 파일은 확장명을 생략할 수 있으며, 요청 매개변수 및 콘텐츠 유형은 IView 인터페이스를 통해 직접 설정할 수 있습니다.
// 通过View对象创建视图对象 IView _view = View.jspView("/demo/test") .addAttribute("attr1", "value") .addAttribute("attr2", 2) .addHeader("head", "value") .setContentType(Type.ContentType.HTML.getContentType()); // 直接创建视图对象 _view = new JspView("/demo/test"); // 下面三种方式的结果是一样的,使用请求路径对应的视图文件返回 _view = View.jspView(); _view = JspView.bind(); _view = new JspView();
View는 WebMVC 모듈에서 제공됩니다.
JspView: JSP 보기;
View.jspView("/demo/test.jsp"); // = "jsp:/demo/test"
FreemarkerView: Freemarker 보기
View.freemarkerView("/demo/test.ftl"); // = "freemarker:/demo/test"
VelocityView;
View.velocityView("/demo/test.vm"); // = "velocity:/demo/test"TextView: 텍스트 보기;
View.textView("Hi, YMPer!"); // = "text:Hi, YMPer!"
HtmlView: HTML 파일 콘텐츠 보기
View.htmlView("<p>Hi, YMPer!</p>"); // = "html:<p>Hi, YMPer!</p>"
JsonView: JSON 보기;
// 直接传递对象 User _user = new User(); user.setId("..."); ... View.jsonView(_user); // 传递JSON字符串 View.jsonView("{id:\"...\", ...}"); // = "json:{id:\"...\", ...}"
B inaryView: 바이너리 데이터 흐름 보기파일이 이름이 지정되지 않으면 응답 헤더는 "attachment;filename=xxx"가 됩니다.
ForwardView: 요청 전달 보기// 下载文件,并重新指定文件名称 View.binaryView(new File("/temp/demo.txt")) .useAttachment("测试文本.txt"); // = "binary:/temp/demo.txt:测试文本.txt"RedirectView: 보기 리디렉션;View.forwardView("/demo/test"); // = "forward:/demo/test"
HttpSt atusView: HTTP 상태 보기View.redirectView("/demo/test"); // = "redirect:/demo/test"
NullView: 빈 보기View.httpStatusView(404); // = "http_status:404" View.httpStatusView(500, "系统忙, 请稍后再试..."); // = "http_status:500:系统忙, 请稍后再试..."