SprintBoot + thyemleaf頁面開發之一

 

  之前用過servlet開發頁面,用Springmvc開發了接口,不過那時候懵懵懂懂,也沒有時間去總結。此次使用SprintBoot + thyemleaf進行頁面開發也磕磕碰碰,不過好在經過網絡查資料後,弄懂了部分,後面繼續學。 其實有時候也迷茫,我是測試,開發學好了真的有用嗎?其實平時工做中並不須要我採用SpringBoot這麼潮流的架構,惟一的好處就是白盒測試效率比對代碼只知其一;不知其二的人高。html

 廢話很少說,正式進入主題。java

 SpringBoot 開發接口的幾種方式:json

 1. @RestController + @RequestMapping. 返回結果是json格式String。好比網絡

@RestController

public class caseAction{
@RequestMapping("/singleRun")
    public ArrayList<TestCase> executeSingleCase(String projectName, String caseName, String pageSize, String pageNum){
        int pageSizeTemp = StringUtils.isBlank(pageSize) == true ? 10 : Integer.parseInt(pageSize);
        int pageNumTemp = StringUtils.isBlank(pageNum) == true ? 1 : Integer.parseInt(pageNum);
        Result result = new Result();
        ArrayList<TestCase> caseList = caseService.executeSingleCase(projectName, caseName, pageSizeTemp, pageNumTemp ,result);
        FileUtils.writeLog(projectName, result);
        return caseList;
    }
}

2. @Controller + @RequestMapping + @ResponseBody架構

 

@Controller
public class caseAction{ 
@RequestMapping("/singleRun")
@ResponseBody
 public ArrayList<TestCase> executeSingleCase(String projectName, String caseName, String pageSize, String pageNum){
        return caseList;
    }
}

 3. 採用@Controller+ModelAndViewmvc

@Controller
public class caseAction{ 
@RequestMapping("/singleRun")
 public ModelAndView executeSingleCase(String projectName, String caseName, String pageSize, String pageNum){
.........
     ModelAndView mv = new ModelAndView();
mv.addObject("caseList",caseList)
        return caseList;
    }
}

 這幾種方式最後經過頁面訪問(get請求),返回的都是json格式String,若是要讓其顯示在模版裏,就須要thyemleaf。例如app

@Controller
public class ProjectAction {

    @Resource
    private ProjectService proService;

    @RequestMapping("/")
    public String index(RedirectAttributes attributes) {
        return "redirect:/project/listProject";
    }

    @RequestMapping("/project/listProject")
    public String queryAll(HttpServletRequest request){
        Result result = new Result();
        ArrayList<Project> projectList = proService.queryAll(result);
        FileUtils.writeLog("wali-autoTestPlat",result);
        request.setAttribute("projectList",projectList);
        return "project";
    }
}
因爲沒有用@RestController,也沒有用@ResponseBody,因此index方法不會轉化爲json格式。 這時候就會按照redirect:/project/listProject 跳轉到路徑爲/project/listProject的方法(也就是queryAll)方法,若是返回結果轉了json,那redirect不會生效,也就是不會跳轉其餘方法。若是返回"project",那麼就會去默認的模版目錄下(resources/templates)找project.html文件,若是沒找到就會報錯。 若是不返回值,那就會拿路徑(/project/listProject)去默認的模板目錄下找。本篇暫時到這,下一篇正式講到thyemleaf
相關文章
相關標籤/搜索