這兩天看了spring官網,忽然就對spring boot感興趣了,因而就嘗試了幾天,一直用不正確,html
首先,按照上面的步驟搭建一個hello world很簡單,web
@SpringBootApplication public class Application{ public static void main(String[] args) { SpringApplication.run(Application.class,args); } }
@RequestMapping("hello") @ResponseBody public String hello() { return "Hello World"; }
這個很是簡單,也能夠運行,沒問題,可是寫web項目不單單是返回一個json數據,這又不是寫接口,因此想讓它返回一個jsp,spring
這個就遇到了麻煩,按照步驟很簡單,就是在application.properties中配置spring.view.prefix 和suffix json
就和以前的xml配置的viewresolver同樣,可是問題就出在這裏,我也不知道什麼緣由,在eclipse中弄了半天終於正確了,可是在idea中徹底相同的配置一直報404錯誤,又沒有寫緣由,也沒log,爲在controller中打印了信息,發現控制檯上打印了,也就是說找不到頁面路徑。app
而後就沒弄jsp了,由於爲的目的不是jsp而是freemarker,並且仍是html後綴,不是ftl,html又遇到了一個問題,僅僅把spring.view.suffix=.htmleclipse
這樣配置會404,我又用xml配置了spring,把後綴改成.html,發現也不能訪問到,網上查了半天終於找到解決方案jsp
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
或者ide
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
其中第一種方案是我試出來的,是吧.html結尾的文件當成靜態資源來處理url
第二種方案是網上找到的,網上的方案基本上都是第二種,至於其中具體的區別我就不知道了idea
可是spring boot中是沒有web.xml的,因此爲一直沒法在spring boot中訪問到html文件
最後是在stackoverflow上找到了一個解決方案
@Configuration @EnableWebMvc public class MvcConfiguration extends WebMvcConfigurerAdapter { @Bean public ViewResolver getViewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/jsp/"); resolver.setSuffix(".html"); return resolver; } @Override public void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer) { configurer.enable(); } }
加上這個配置類就能夠訪問到html了,可是,freemarker不能用,也就是說數據傳不進去,
那麼這樣訪問html就沒用了。
最後看spring boot官方例子上的freemarker配置,裏面是.ftl結尾的可是也能夠當html來用
在application.properties中配置,spring.freemerker.suffix:.html
那麼訪問的就是html文件了
我知道爲說了一堆廢話,可是上面這個問題確實困擾了爲一週,就爲了最後的這個freemarker的html。以前是看到了官方的freemarker例子,可是看到是.ftl結尾就沒仔細看,沒想到只是稍微改下就符合爲的要求了,真是無語。
到此爲止,就應該可以用spring boot寫課程設計了,還有最後十幾天了,爭取作出來