адрес проекта:GitHub.com/Entrepreneurship Network Small/Судный день, который вы…
задний план
Так как бизнес компании ориентирован на африканский рынок
Смартфоны не популярны в некоторых странах, например в Уганде, где по-прежнему преобладают мобильные телефоны.
Для поддержки кнопочного телефона необходимо создать новыйwap
Веб-сайт для поддержки обычных телефонов (Боже мой!)
Технический отбор
Так как тест функциональной машины не поддерживает js, использовать vue на фронтенде нереально, и можно использовать только в виде шаблонов
Вы можете использовать jsp, freemarker, Thymeleaf и другие движки, но окончательный выборvelocity
Шаблон (шеф использовал его)
использование серверной частиspringboot
#Проект Простая Архитектура
#скорость интеграции springboot
Выбор версии
Выберите spring-boot-starter-velocity, более высокая версия springboot не поддерживается, можно использовать только более низкую версию 1.4.7.
pom.xml добавить зависимости
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-velocity</artifactId>
</dependency>
application.properties добавить конфигурацию
server.port=2828
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.check-template-location=true
spring.velocity.content-type=text/html
spring.velocity.enabled=true
spring.velocity.prefix=/templates/
spring.velocity.suffix=.vm
Добавьте демонстрационный тест на слой контроллера
@Controller
@RequestMapping("/velocity")
public class TestController {
// demo测试
@RequestMapping("/demo")
public String demo1(Map map) {
map.put("message", "这是测试的内容。。。");
map.put("time", System.currentTimeMillis());
return "index";
}
}
Новый домашний index.vm в папке шаблонов
<html>
<body>
$!{message}
$!{time}
</body>
</html>
посетите главную страницу
http://localhost:2828/velocity/demo
хорошо, простейшая скорость интеграции с Springboot завершена
обработка даты и времени
Как настроить формат времени временной метки
1. Добавьте toolbox.xml
Содержание выглядит следующим образом
<?xml version="1.0" encoding="UTF-8"?>
<toolbox>
<tool>
<key>DateTool</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
</tool>
</toolbox>
Конечно, если вам нужно обрабатывать числа или что-то в этом роде, вы также можете ввести инструмент.
2. Укажите расположение toolbox.xml
application.properties
Добавьте spring.velocity.toolbox-config-location=/toolbox.xml
3. Использование на странице vm
<h1>日期处理</h1>
处理前:$time
<br>
处理后:$!DateTool.format($!time)
Единая обработка страниц исключений
Новый обработчик исключений скорости
@ControllerAdvice
public class VelocityExceptionHander {
@ExceptionHandler(value = Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public String exceptionHandler(Exception e, HttpServletRequest request) {
System.out.println("未知异常!原因是:" + e);
request.setAttribute("msg", e);
return "500";
}
}
Создайте новую страницу шаблона 500.vm
<html>
<body>
error
<br>
$!msg
</body>
</html>
После этого, если произойдет исключение, он перейдет на страницу 500.
Наконец, суммируйте часто используемые базовые грамматические теги.
// velocity常用语法汇总
@RequestMapping("/allDemo")
public String demo3(Map map) {
map.put("amount", 100);
map.put("msg", "dahai");
map.put("sex", "man");
putString(map);
putSportList(map);
map.put("time", System.currentTimeMillis());
return "allDemo";
}
private void putSportList(Map map) {
List<Sport> sportList = new ArrayList<Sport>() {{
add(new Sport(1, "Football"));
add(new Sport(2, "Basketball"));
add(new Sport(3, "tennis"));
add(new Sport(4, "rugby"));
add(new Sport(5, "cricket"));
}};
map.put("sportList", sportList);
Map<Integer, Sport> sportMap = sportList.stream().collect(Collectors.toMap(Sport::getId, s -> s));
map.put("sportMap", sportMap);
}
private void putString(Map map) {
List<String> strings = new ArrayList<>();
strings.add("a");
strings.add("b");
strings.add("c");
map.put("strings", strings);
}
страница шаблона виртуальной машины
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>velocity test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<h1>字符串类型</h1>
$!msg
<h1>if标签</h1>
#if($!sex == 'man')
男
#else
女
#end
<h1>set操作(定义变量)</h1>
#set($hw = 'ok')
$hw
<h1>普通for循环</h1>
#foreach($!s in $!strings)
$s
#end
<h1>对象for循环</h1>
#foreach($!sport in $!sportList)
$!sport.name
#end
<h1>map for循环</h1>
#foreach($!sp in $!sportMap.keySet())
$sp $!sportMap.get($sp).name <br>
#end
<h1>日期处理</h1>
处理前:$time
<br>
处理后:$!DateTool.format($!time)
<h1>计算加减乘除</h1>
#set($jia = $amount + 10)
+10= $jia <br>
#set($jian = $amount - 10)
-10= $jian <br>
#set($cheng = $amount * 10)
×10= $cheng <br>
#set($chu = $amount / 10)
÷10= $chu <br>
</body>
</html>