Springboot读取templates文件html代码实例
SpringBoot里面没有我们之前常规web开发的WebContent(WebApp),它只有src目录
在src/main/resources下面有两个文件夹,static和templatesspringboot默认static中放静态页面,而templates中放动态页面
在不使用第三方jar包的情况下,Springboot不能直接访问templates下的静态页面,需要加其他jar包依赖。
代码如下
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.stereotype.Controller;
importorg.springframework.util.ClassUtils;
importorg.springframework.web.bind.annotation.RequestMapping;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.*;
@Controller
publicclassPageController{
privatestaticClassLoaderclassLoader=ClassUtils.getDefaultClassLoader();
privatestaticfinalLoggerlog=LoggerFactory.getLogger(PageController.class);
@RequestMapping("/")
publicvoidroot(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
request.getRequestDispatcher("/index.html").forward(request,response);
}
@RequestMapping("**.html")
publicvoidpage(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{
InputStreamReaderstreamReader=null;
try{
StringservletPath=request.getServletPath();
log.info(request.getMethod()+""+servletPath);
StringfilePath="templates"+servletPath;
InputStreaminputStream=classLoader.getResourceAsStream(filePath);
if(inputStream==null){
response.sendError(404);
return;
}
streamReader=newInputStreamReader(inputStream);
PrintWriterprintWriter=response.getWriter();
response.setContentType("text/html");
intreadChar;
while((readChar=streamReader.read())!=-1){
printWriter.write(readChar);
}
printWriter.flush();
}finally{
if(streamReader!=null)streamReader.close();
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。