spring boot


這兩天看了spring官網,突然就對spring boot感興趣了,於是就嘗試了幾天,一直用不正確,

首先,按照上面的步驟搭建一個hello world很簡單,

@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,

這個就遇到了麻煩,按照步驟很簡單,就是在application.properties中配置spring.view.prefix 和suffix 

就和之前的xml配置的viewresolver一樣,但是問題就出在這里,我也不知道什么原因,在eclipse中弄了半天終於正確了,但是在idea中完全相同的配置一直報404錯誤,又沒有寫原因,也沒log,為在controller中打印了信息,發現控制台上打印了,也就是說找不到頁面路徑。

然后就沒弄jsp了,因為為的目的不是jsp而是freemarker,而且還是html后綴,不是ftl,html又遇到了一個問題,僅僅把spring.view.suffix=.html

這樣配置會404,我又用xml配置了spring,把后綴改為.html,發現也不能訪問到,網上查了半天終於找到解決方案

<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
</servlet-mapping>

或者

<servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.html</url-pattern>
</servlet-mapping>

其中第一種方案是我試出來的,是吧.html結尾的文件當成靜態資源來處理

第二種方案是網上找到的,網上的方案基本上都是第二種,至於其中具體的區別我就不知道了

但是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寫課程設計了,還有最后十幾天了,爭取做出來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM