Как создавать HTML (+ CSS) страницы в Java?

143
06 ноября 2019, 20:30

Интересует библиотека по созданию HTML с добавлением в него данных через переменные (Что-то вроде Thymeleaf или HTMLFlow). Не с помощью SPRING и без Apache Tomcat! Сервер написан с использованием HttpServer.

Предположим, у меня есть заготовленный HTML+CSS шаблон сайта и я хотел бы в него вставлять данные, сохранять страницу и выставлять ее потом на сайте.

Вот пример шаблона:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <h1></h1>
  <h2></h2>
</body>
</html>

Вместо <h1>и <h2> я хотел бы ставить Hello и World сответственно.

Если возможен вариант решения через Thymeleaf - то я очень приветствую ибо в интернете в основном Thymeleaf идет со Spring'ом.

P.S. Пример кода - это сугубо пример. В моем случае нужно это мне для создания таблицы-расписания.

Answer 1
package com.example;
import java.io.StringWriter;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
public class Demo {
    public static void main(String[] args) {
        TemplateEngine templateEngine = new TemplateEngine();
        ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setTemplateMode("HTML");
        templateEngine.setTemplateResolver(templateResolver);
        Context context = new Context();
        context.setVariable("h1", "Hello");
        context.setVariable("h2", "World");
        StringWriter stringWriter = new StringWriter();
        templateEngine.process("test.html", context, stringWriter);
        System.out.println(stringWriter.toString());
    }
}
Answer 2

Обратите внимание на Apache FreeMarker https://freemarker.apache.org/ Будет необходимо определить html-template, с переменными, которые будут подставляться из Java-кода. По аналогии с JSP

Answer 3

Дополнение к ответу Sergey Gornostaev:

Расположение *.java и *.html файлов у вас может отличаться! Данный пример для Maven-юзеров

Визуализация файлов в проекте:

 .
├── pom.xml
└── src
    └── main
        ├── java
        │   └── com
        │       └── example
        │           └── Demo.java
        └── resources
            └── test.html

Создаем файл Demo.java:

import java.io.StringWriter;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
public class Demo{ 
    public static void main(String[] args) {
        TemplateEngine templateEngine = new TemplateEngine();
        ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setTemplateMode("HTML");
        templateEngine.setTemplateResolver(templateResolver);
        Context context = new Context();
        context.setVariable("h1", "Hello");
        context.setVariable("h2", "World");
        StringWriter stringWriter = new StringWriter();
        templateEngine.process("test.html", context, stringWriter);
        System.out.println(stringWriter.toString());
    }
}

Создаем HTML-файл в папке resources/ с именем test.html:

<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<h1 th:text="${h1}"></h1>
<h2 th:text="${h2}"></h2>
</body>
</html>
READ ALSO
Удалить required

Удалить required

Подскажите пожалуйста почему не получается удалить required

140
Высчитать подстроку в строке [закрыт]

Высчитать подстроку в строке [закрыт]

Пишу сайтИ есть такая задача

149
Работа с Random в C#

Работа с Random в C#

Помогите пожалуйста сделать движение объекта по полю хаотичным, а также задать их начальное положение не в левом верхнем углуСейчас все...

132
Как сделать аутентификацию в asp core?

Как сделать аутентификацию в asp core?

У меня аутентификация на стороне сервера сделана:

140