freemarker

基于SpringBoot前后端分离的点餐系统

喜夏-厌秋 提交于 2020-05-06 07:59:14
基于SpringBoot前后端分离的点餐系统    开发环境: 主要采用Spring boot框架和小程序开发      项目简介: 点餐系统,分成卖家端和买家端。买家端使用微信小程序开发,实现扫码点餐、浏览菜单、下单、评论的功能。而卖家端则是使用Web网站开发,主要实现商品类目的管理、商品的管理、前端页面的轮播图替换、订单的取消、完结功能、卖家的登录功能等。 后端主要用到的技术: JDK8 MySql SpringBoot Spring—data-jpa Lombok Freemarker Bootstrap WebSocket 前端主要用到的技术: 微信小程序开发 点餐系统项目的效果图:    商家管理后台 登录界面 管理界面    买家的前端界面 上面就是点餐系统的效果图。 此项目我已经上传到GitHub上。 GitHub: https://github.com/HCychao/SpringBootAndOrder.git 对项目有什么疑问可以留下评论,我会及时回复大家的疑问。 来源: oschina 链接: https://my.oschina.net/u/4350719/blog/4267775

在InfoQ发表一篇论文《半静态语言–原理和价值分析》

老子叫甜甜 提交于 2020-05-05 21:37:39
半静态语言 – 背景、原理和价值 (Semi-Static Language - Background,Mechanism and Value) 【摘要】动态类型语言在企业开发和互联网开发中应用广泛,而其弱类型的内在特点使其在这些业务复杂的应用开发中存在很多缺点:无法静态验证,程序不健壮,测试成本高;缺乏静态语言如Java的实时验证、代码提示、代码重构等敏捷开发功能。为此,本文提出半静态语言,它的基本原理是两阶段模型,开发时运用变量类型声明进行类型检查,运行时采用解释执行的方式。半静态语言它结合了动态语言和静态语言的优点,同时满足灵活性、健壮性与敏捷开发的需求。 【关键词】半静态语言,动态类型语言, 静态类型语言, Velocity, Freemarker, Java 原文首发在 InfoQ China: 半静态语言 – 背景、原理和价值 来源: oschina 链接: https://my.oschina.net/u/98785/blog/11039

freemarker中使用<@spring.*>标签实现国际化

旧城冷巷雨未停 提交于 2020-05-05 19:57:35
freemarker实现国际化使用自定义指令<@spring>实现,通过@符号可以看出是自定义的指令,在哪里定义的呢? 路径如下:org/springframework/spring-webmvc/5.0.6.RELEASE/spring-webmvc-5.0.6.RELEASE.jar!/org/springframework/web/servlet/view/freemarker/spring.ftl 打开spring.ftl文件,可以看到定义了很多宏指令,我列出几个常用的: #这个宏名称为message,参数只有code,是我们国际化中最常用的,它实际调用了RequestContext的getMessage(String code)方法 <#macro message code>${springMacroRequestContext.getMessage(code)}</#macro> #这个宏名称为messageArgs ,参数有两个code和args,国际化字符串中有占位符时可以用到,它实际调用了RequestContext的getMessage(String code, @Nullable Object[] args)方法 <#macro messageArgs code, args>${springMacroRequestContext.getMessage(code

Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

余生长醉 提交于 2020-05-05 19:57:20
今天来聊聊 Spring Boot 整合 Freemarker。 Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎。通过 Freemarker 模版,我们可以将数据渲染成 HTML 网页、电子邮件、配置文件以及源代码等。Freemarker 不是面向最终用户的,而是一个 Java 类库,我们可以将之作为一个普通的组件嵌入到我们的产品中。 来看一张来自 Freemarker 官网的图片: 可以看到,Freemarker 可以将模版和数据渲染成 HTML 。 Freemarker 模版后缀为 .ftl (FreeMarker Template Language)。FTL 是一种简单的、专用的语言,它不是像 Java 那样成熟的编程语言。在模板中,你可以专注于如何展现数据, 而在模板之外可以专注于要展示什么数据。 好了,这是一个简单的介绍,接下来我们来看看 Freemarker 和 Spring Boot 的一个整合操作。 实践 在 SSM 中整合 Freemarker ,所有的配置文件加起来,前前后后大约在 50 行左右,Spring Boot 中要几行配置呢? 0 行! 1.创建工程 首先创建一个 Spring Boot 工程,引入 Freemarker 依赖,如下图: <dependency> <groupId>org.springframework.boot<

Spring Boot FreeMarker 使用教程

孤者浪人 提交于 2020-05-05 19:57:07
FreeMarker 跟 Thymeleaf 一样,是一种模板引擎,他可以无缝兼容 FreeMarker 在 Spring Boot 开发者中仍然有着很高的地位。 本章重点内容 编写一个最简单的 Freemark 模板示例 简单说明 FreeMarker 本项目源码下载 1 FreeMarker 简介 相对于 Jsp ,FreeMarker 具有太多的优势。FreeMarker 适合 Mvc 场景。 FreeMarker 最大的特点就是具有可编程能力,可以对任何后台输出的数据做编程能力,这就像在 Java 中加入了 PHP 功能,这非常有趣。 FreeMarker 支持各类语法包括 字符输出、条件判断 if/else、循环遍历、 1.1 变量 ${...} 1.2 条件语句 <#if condition> ... <#elseif condition2> ... <#elseif condition3> ... <#else> ... </#if> 1.3 循环语句 假设 users 包含['Joe', 'Kate', 'Fred'] 序列: <#list users as user> <p>${user} </#list> 输出: <p>Joe <p>Kate <p>Fred 1.4 include 包含语句 将版权信息单独存放在页面文件 copyright_footer

Spring Boot + Freemarker多语言国际化的实现

亡梦爱人 提交于 2020-05-05 19:04:11
最近在写一些Web的东西,技术上采用了 Spring Boot + Bootstrap + jQuery + Freemarker 。过程中查了大量的资料,也感受到了前端技术的分裂,每种东西都有N种实现,组合起来,每种解决方案的资料却很有限。 这篇文章记录下多语言国际化的实现,以支持中英文为例。 ##首先是页面内容的国际化 1.定义页面文本配置文件的路径,在 application.properties 里添加 spring.messages.basename=i18n/messages 2.在 resources/ 目录下创建上述目录,添加3个配置文件 messages.properties 、 messages_zh.properties 、 messages_en.properties ,分别对应默认,中文和英文配置,完整路径为 resources/i18n/messages.properties 3.在配置文件里定义每条需要国际化的文本,比如中文 index.title=麦希工具 - 您身边的助手 ,英文 Meta Tool - Your Best Assistant 4.在Freemarker文件里使用**<@spring.message ""/>**来输出文本,比如 <title><@spring.message "index.title"/></title> #

Spring MVC 多语言化的实践和学习

与世无争的帅哥 提交于 2020-05-05 16:28:38
一、主要参考: SpringMVC简单实现国际化/多语言 - CSDN博客 https://blog.csdn.net/u013360850/article/details/70860144/ 二、总结: 实际操作和原文有出入,以自己的实操为主。实操主要内容都可以参考对应的GtHub的提交记录: https://github.com/NullTommy/hello/commit/13cbaa23f61d5a83845c4030e1bfe877d06864b4 对于项目的整体构建不做过多描述,只说多语言部分; 配置Spring MVC 相关的多语言配置: messageSource主要用于配置多语言资源化文件的路径 localeResolver好像是必须的,不然会出错 interceptors,拦截器,用于拦截请求中的语言相关信息, <!-- 配置国际化资源文件路径 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n/messages" /> <property name="useCodeAsDefaultMessage" value="true"/> <

SpringMVC源码阅读:视图解析器

帅比萌擦擦* 提交于 2020-05-04 11:17:03
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看 SpringMVC源码阅读入门 ,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring4.3.7)分析,弄清楚SpringMVC如何完成视图解析的 2.源码分析 在 SpringMVC源码阅读:拦截器 分析 过doDispatch的运行过程,这里再分析一遍 回到DispatcherServlet类的doDispatch方法,看看doDispatch如何获取ModelAndView HandlerMapping根据request获得HandlerExecutionChain 根据HandlerExecutionChain获取HandlerAdapter HandlerAdapter根据request,response和HandlerExecutionChain调用handle方法返回ModelAndView 然后交由 processDispatchResult 处理 1023行检测从doDispatch方法运行到此是否有异常 1037行根据ModelAndView渲染视图 1259根据视图名称解析成View对象 1282行调用AbstractView的render方法进行渲染 点进去,这里以解析ftl做测试 301行创建包含动态值和静态属性的Map

【SpringBoot】常用Starter介绍和整合模板引擎Freemaker、thymeleaf

人走茶凉 提交于 2020-05-02 18:34:41
========7、SpringBoot常用Starter介绍和整合模板引擎Freemaker、thymeleaf ========================= 1、SpringBoot Starter讲解 简介:介绍什么是SpringBoot Starter和主要作用 1、官网地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#using-boot-starter 2、starter主要简化依赖用的 spring-boot-starter-web ->里面包含多种依赖 3、几个常用的starter spring-boot-starter-activemq spring-boot-starter-aop spring-boot-starter-data-redis spring-boot-starter-freemarker spring-boot-starter-thymeleaf spring-boot-starter-webflux 2、SpringBoot2.x常见模板引擎讲解和官方推荐使用 简介:介绍常用的SpringBoot2.x模板引擎和官方推荐案例 1、JSP(后端渲染,消耗性能) Java Server Pages 动态网页技术

Mybatis-plus 代码生成器的使用

北战南征 提交于 2020-05-02 16:46:25
代码生成器 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 步骤演示 一、添加mybatis plus依赖 <!--spring-boot web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mysql依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> 5.1 . 42 </version> <scope>runtime</scope> </dependency> <!--生成实体成set set 方法--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional> true </optional> </dependency> <!-- mybatisPlus 核心库 --> <dependency>