Voir
Le module
WebMVC prend en charge une variété de technologies d'affichage, notamment JSP, Freemarker, Velocity, Text, HTML, JSON, Binary, Forward, Redirect, HttpStatus, etc. Les vues personnalisées peuvent également être implémentées via l'extension d'interface IView
Controller ; view La méthode de représentation
- renvoie le type d'interface IView ;
- exprime un type de vue via une chaîne ;
- n'a pas de valeur de retour ou la valeur de retour est vide, la vue JspView correspondant au chemin RequestMapping actuel sera utilisée ;
Configuration du chemin du fichier de vue
Le chemin de base du fichier de vue du contrôleur doit commencer et se terminer par '/', la valeur par défaut est /WEB-INF/templates/;
Exemple d'opération d'objet ViewLe fichier de vue peut omettre le nom de l'extension, et les paramètres de demande et le type de contenu peuvent être définis directement via l'interface IView
ymp.configs.webmvc.base_view_path=/WEB-INF/templates/
Vue fournie par le module WebMVC ; JspView : vue JSP ;
// 通过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();
FreemarkerView : vue Freemarker VelocityView : vue Vitesse ;View.jspView("/demo/test.jsp"); // = "jsp:/demo/test"
TextView : vue texte ;View.freemarkerView("/demo/test.ftl"); // = "freemarker:/demo/test"
View.velocityView("/demo/test.vm"); // = "velocity:/demo/test"HtmlView : vue du contenu du fichier HTML
View.textView("Hi, YMPer!"); // = "text:Hi, YMPer!"JsonView : vue JSON ;
Si le fichier le nom n'est pas spécifié, l'en-tête de réponse sera "attachment;filename=xxx" ne sera pas inclus dansView.htmlView("<p>Hi, YMPer!</p>"); // = "html:<p>Hi, YMPer!</p>"BinaryView : vue du flux de données binaires ;
ForwardView : demande de vue de transfert
// 直接传递对象 User _user = new User(); user.setId("..."); ... View.jsonView(_user); // 传递JSON字符串 View.jsonView("{id:\"...\", ...}"); // = "json:{id:\"...\", ...}"
RedirectView : vue de redirection ;// 下载文件,并重新指定文件名称 View.binaryView(new File("/temp/demo.txt")) .useAttachment("测试文本.txt"); // = "binary:/temp/demo.txt:测试文本.txt"HttpSt atusView : vue de l'état HTTP
View.forwardView("/demo/test"); // = "forward:/demo/test"
NullView : vue vide
View.redirectView("/demo/test"); // = "redirect:/demo/test"