Spring Boot View 整合(二)

Sping boot view 整合(一): https://blog.csdn.net/qq_18603599/article/details/81171358

前一篇烧烤小分队的成员:西贝的爸爸, 介绍了spring boot 整合了主流的 view 模版,包含了 JSP, FreeMarker, Thymeleaf等主流的后端开发模版,本篇主要是Spring boot 来整合 html , 说整合有感觉不是太恰当,因为本篇是涉及前后端分离的概念。

本篇涉及的知识点:

1. spring boot  : 搭建不在此详细介绍,本篇主要知识点一中的延续,着重讲下 @RestController

2. jquery.js : 异步ajax 请求,本篇不讲解跨域的问题。

3. template.js : 前端模版引擎(腾讯),前端模版引擎还有其他几种,我在网上找了下几种不同引擎在不同浏览器的性能测试情况,下图供大家选型参考,注:图转载自网络,如涉及侵权请联系删除

Spring Boot View 整合(二)_第1张图片

Spring Boot View 整合(二)_第2张图片

Spring Boot View 整合(二)_第3张图片Spring Boot View 整合(二)_第4张图片Spring Boot View 整合(二)_第5张图片

通过测试结果我们发现在不同的浏览器之前各模版引擎的表现各异,template  juicer doT 整体性能都比较好,但是由于doT容错能力比较差,所有建议大家选型趋向于 artTemplate  和 juicer , 但是两者之间的语法有所差异,所以大家可以根据自己的编码习惯去选择不同的模版引擎。本篇主要针对template 来讲解,具体语法不在本篇中涉及。

话不多说,直接上代码

先来看下 @RestController 源码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
String value() default "";
}

通过源码可以看到 @Controller  @ResponseBody  使用过Spring3 的老司机应该都知道这两个注解的含义,所以@RestController 具体作用的清晰了。

工程看下目录结构

Spring Boot View 整合(二)_第6张图片

pom.xml 文件




  4.0.0

  com.suning.boot
  html
  1.0-SNAPSHOT
  war

  
    UTF-8
    1.7
    1.7
  

  
    org.springframework.boot
    spring-boot-starter-parent
    1.5.2.RELEASE
  

  

    
    
      org.projectlombok
      lombok
      
    

    
    
      com.alibaba
      fastjson
      1.2.44
    

    
    
      org.springframework.boot
      spring-boot-starter-web
    
  

  
    html
    
      
        
          maven-clean-plugin
          3.0.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.7.0
        
        
          maven-surefire-plugin
          2.20.1
        
        
          maven-war-plugin
          3.2.0
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  

 

UserContent.java

package com.spring.html.content;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 *
 * @Author wangli 17102317
 * @Descrintion:
 * @Date : Created in 23:49 2018/10/25
 * @
 */
@ToString
@NoArgsConstructor
@Accessors(chain = true)
@Setter
@Getter
public class UserContent {

    private String name ;
    private String age ;
    private String sex ;

}

HtmlController.java

package com.spring.html.controller;

import com.spring.html.content.UserContent;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.springframework.web.bind.annotation.RequestMethod.POST;

/**
 *
 * @Author wangli 17102317
 * @Descrintion:
 * @Date : Created in 23:40 2018/10/25
 * @
 */

@RestController
public class HtmlController {


    @RequestMapping(value = "/list", method = POST)
    public Map> index(){
        Map> map = new HashMap<>();
        List list = new ArrayList<>();
        UserContent userContent = new UserContent();

        userContent.setName("jhp");
        userContent.setAge("30");
        userContent.setSex("男");
        list.add(userContent);
        userContent = new UserContent();
        userContent.setName("yaodong");
        userContent.setAge("29");
        userContent.setSex("男");
        list.add(userContent);
        userContent = new UserContent();
        userContent.setName("guoyanbin");
        userContent.setAge("29");
        userContent.setSex("男");
        list.add(userContent);
        map.put("list",list);

        return map;
    }


}

启动java

package com.spring.html;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 *
 * @Author wangli 17102317
 * @Descrintion:
 * @Date : Created in 23:46 2018/10/25
 * @
 */
@SpringBootApplication
public class HtmlApplication {
    public static void main(String[] args) {
        SpringApplication.run(HtmlApplication.class,args);
    }
}

index.html




    
    模版引擎


如果涉及IE跨域可以引入 jquery.xdomainrequest.min.js 具体用法不在此介绍

启动springboot

浏览器访问

Spring Boot View 整合(二)_第7张图片

 

你可能感兴趣的:(Spring Boot View 整合(二))