Spring Boot2.0之web开发详解编程语言

1、关于静态资源的访问

在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。

Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:

/static

/public

/resources        

/META-INF/resources

比如:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,访问http://localhost:8080/xx.jpg。

2、渲染web页面

在之前的示例中,[email protected][email protected]页面的时候,要如何实现呢?

我们可以用模板引擎

在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。

Spring Boot提供了默认配置的模板引擎主要有以下几种:

  • Thymeleaf
  • FreeMarker
  • Velocity
  • Groovy
  • Mustache

Spring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置

当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。

 

 下面介绍下 使用FreeMarker模板应请渲染web视图

  首先创建maven工程,pom文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  <modelVersion>4.0.0</modelVersion> 
  <groupId>springboot-frameworker</groupId> 
  <artifactId>com.toov5.frameworker</artifactId> 
  <version>0.0.1-SNAPSHOT</version> 
  <parent> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-parent</artifactId> 
        <version>2.0.0.RELEASE</version> 
    </parent> 
    <dependencies> 
        <dependency> 
            <groupId>org.springframework.boot</groupId> 
            <artifactId>spring-boot-starter-web</artifactId> 
        </dependency> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
          <artifactId>spring-boot-starter-freemarker</artifactId> 
   </dependency> 
         
    </dependencies>  
   
   
</project>

 

Java类

package com.toov5.frameworker; 
 
 
 
import java.util.Map; 
 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
 
 
@Controller 
public class index { 
    @RequestMapping("/index") 
	public String show(Map<String, Object> map){ 
	    map.put("name", "toov5"); 
	    map.put("age","20"); 
	    map.put("sex","0"); 
		return "index"; 
	} 
	 
	 
	 
} 

启动类:

package com.toov5.frameworker; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
 
@SpringBootApplication 
public class app { 
 
	public static void main(String[] args){ 
		SpringApplication.run(app.class, args); 
	} 
	 
}
  

然后创建freemarker文件

目录结构如下:

Spring Boot2.0之web开发详解编程语言

其中freemarker的名字后缀和路径默认最好这样哈,内容如下所示:

hello frameworker, 
 
${name}*****${age} 

 启动项目,并且访问: 

  Spring Boot2.0之web开发详解编程语言

成功之,是不是很好玩呀~~关于freemaker的语法大家自己找个博客或者相应的教程看看吧,很简单。重在实践哟

 

 

PS:有小伙伴问 [email protected]@Controller区别

1) [email protected],则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

2) 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
    如果需要返回JSON,XML或自定义mediaType内容到页面,[email protected]

[email protected] 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面

若返回json等内容到页面,[email protected]

2.@RestController注解,[email protected][email protected][email protected][email protected],就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

so,你可以试试,把我们这个小项目中的 注解替换下 ,你看看页面返回的啥子,自己体会下哈

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/16173.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论