广州网站设计软件,建设将网站加入受信网站再试,做淘宝要用的网站,北京今天的最新发布消息Spring MVC 5 Thymeleaf 注解配置 Spring的配置方式一般为两种#xff1a;XML配置和注解配置 Spring从3.0开始以后#xff0c;推荐使用注解配置#xff0c;这两种配置的优缺点说的人很多#xff0c;我就不说了#xff0c;自行体会#xff0c;下面就用注解配置实现一个Sp…Spring MVC 5 Thymeleaf 注解配置 Spring的配置方式一般为两种XML配置和注解配置 Spring从3.0开始以后推荐使用注解配置这两种配置的优缺点说的人很多我就不说了自行体会下面就用注解配置实现一个Spring MVC Web Demo 先看看项目结构 可以看到没有任何XML配置文件全都是Java代码实现。 使用 Maven 新建一个项目当然你用IEDAEclipse新建一个空的项目一样的然后添加依赖依赖下面直接给出4.0.0spring-mvcspring-mvc1.0-SNAPSHOTwar nameSpring-mvc Maven Webapp/namepropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingfailOnMissingWebXmlfalse/failOnMissingWebXmlmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetspring.version5.0.6.RELEASE/spring.versionthymeleaf.version3.0.9.RELEASE/thymeleaf.version/propertiesdependencies!--spring相关包--dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency!--j2ee相关包 servlet、jsp、jstl--dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/versionscopeprovided/scope/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version/dependencydependencygroupIdorg.thymeleaf/groupIdartifactIdthymeleaf-spring5/artifactIdversion${thymeleaf.version}/version/dependency!--junit--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope/dependency!--jackson--dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.9.5/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.9.5/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId!--配置热启动--configurationforktrue/fork/configuration/plugin!--servlet容器 tomcat 插件--plugingroupIdorg.apache.tomcat.maven/groupIdartifactIdtomcat7-maven-plugin/artifactIdversion2.2/version/plugin/plugins/build
/project新建 MvcWebConfig 配置类 实现WebMvcConfigurer接口重写configureViewResolvers 方法即可并且使用 Configuration、ComponentScan 注解 MvcWebConfig 类下面我给出主要代码然后说明代码的作用。 /*** STEP 1 - 创建模版解析器*/Beanpublic ITemplateResolver templateResolver() {SpringResourceTemplateResolver templateResolver new SpringResourceTemplateResolver();templateResolver.setApplicationContext(applicationContext);templateResolver.setPrefix(/WEB-INF/templates/);templateResolver.setSuffix(.html);templateResolver.setCharacterEncoding(UTF-8);templateResolver.setTemplateMode(TemplateMode.HTML);templateResolver.setCacheable(false);return templateResolver;}/*** STEP 2 - 创建模版引擎* 并为模板引擎注入模板解析器*/Beanpublic SpringTemplateEngine templateEngine() {SpringTemplateEngine templateEngine new SpringTemplateEngine();templateEngine.setTemplateResolver(templateResolver());templateEngine.setEnableSpringELCompiler(true);return templateEngine;}/*** STEP 3 - 注册 Thymeleaf 视图解析器* 并为解析器注入模板引擎*/Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {ThymeleafViewResolver viewResolver new ThymeleafViewResolver();viewResolver.setTemplateEngine(templateEngine());viewResolver.setCharacterEncoding(UTF-8);registry.viewResolver(viewResolver);} templateResolver 方法和XML配置的类似中文会有乱码问题需要设置 UTF-8两个地方必须都要设置否则会显示乱码新建 MvcWebAppInitializer 类 extends 抽象类 AbstractAnnotationConfigDispatcherServletInitializer重写以下几个方法 Override protected Class?[] getRootConfigClasses() { return null; } Overrideprotected Class?[] getServletConfigClasses() {return new Class[]{MvcWebConfig.class};}Overrideprotected String[] getServletMappings() {return new String[]{/};}Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter encodingFilter new CharacterEncodingFilter();encodingFilter.setEncoding(UTF-8);encodingFilter.setForceRequestEncoding(true);return new Filter[]{encodingFilter};} 至此配置已经全部完成。新建 HomeController 新建 index 视图先看看能不能跑起来 index : RequestMapping(value /, method RequestMethod.GET) public String index() { return index; }在 \WEB-INF\templates 目录下新建页面 index.html并使用thymeleaf 模板引擎!DOCTYPE htmlhtml langzh-CN xmlns:thhttp://www.thymeleaf.orgheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1titleSpring Index/titlelink relstylesheet hrefhttps://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css crossoriginanonymous/headbodydiv classcontainer stylemargin-top: 40px;div classjumbotronh1Spring Mvc 5 Thymeleaf/h1p出现此页面说明配置成功弃用xml配置使用注解方式实现/ppmvn tomcat7:run/ppa classbtn btn-primary btn-lg th:href{/home/user} rolebuttonLearn more/a/p/div/divscript srchttps://cdn.bootcss.com/jquery/3.2.1/jquery.slim.min.js crossoriginanonymous/scriptscript srchttps://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js crossoriginanonymous/script/body/html/home/user 页面如下 至此页面已经完成现在使用Maven 跑一下命令mvn tomcat7:run 当然你也可以用IDEA 的 Edit Configurations 新建一个Maven如下图 看一下效果 没有使用任何XML文件Spring MVC跑起来了再试试返回json数据 在 HomeController 新建userList 方法返回List数组 ResponseBody RequestMapping(value /home/userList, method RequestMethod.GET) public List userList() { List userList new ArrayList(); userList.add(new UserInfo(1001, 龙傲天, 23, 成都省)); userList.add(new UserInfo(1002, 曹孟德, 33, 河北市)); userList.add(new UserInfo(1003, Chris, 32, 高新市)); userList.add(new UserInfo(1003, Evans, 17, 绵阳市)); return userList;} Spring 返回 json数据 直接使用 ResponseBody 注解杰克ResponseBody 依赖 com.fasterxml.jackson看下返回json数据的效果没有使用任何XML文件实现了一个Web 程序。 Ps博客园的这个markdown 编辑器有问题我用Typora写好了复制过来总有些问题将就着看吧 转载于:https://www.cnblogs.com/softmax/p/9157584.html