Как передать случайное число из класса Java в HTML-файл - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь узнать больше весенних рамок с помощью thymeleaf, но сейчас я хочу создать в одном классе случайное число, а затем перейти к html-файлу, чтобы распечатать его.Я даже делаю это правильно?Итак, у меня есть класс numberController, где я генерирую свое случайное число:

public class numberController {
    public int randomSkaicius() {
        Random rand = new Random();
        int skaicius = (int) (Math.random() * 50 + 1);
        return skaicius;
    }
}

А вот мой HTML-код:

<div class="container">
    <h5>Privaloma informacija</h5>
    <div>
        <form action="#" th:action="@{/home}" th:object="${galerija}" method="GET">
            <label>Nuotraukos ID: + ${numberController.randomSkaicius}</label>
        </form>
    </div>
</div>

1 Ответ

0 голосов
/ 13 февраля 2019

Прежде всего, вы должны убедиться, что ваш шаблон Thymeleaf находится в правильном месте ( src / main / resources / templates ), и запомнить его имя (например, my-page).html ).

Следующим шагом является то, что вы должны правильно сказать Spring, что NumberController на самом деле контроллер, используя аннотацию @Controller:

@Controller
public class NumberController {
    public int randomSkaicius() {
        Random rand = new Random();
        int skaicius = (int) (Math.random() * 50 + 1);
        return skaicius;
    }
}

После этого вы должны сообщить Spring, какой URL должен быть разрешен для конкретного метода контроллера, который возвращает модель + представление.Вы можете сделать это, используя аннотацию @GetMapping, например:

@Controller
public class NumberController {
    @GetMapping("/my/page")
    public ModelAndView getMyPage() {
        // TODO: Implementation
    }

    public int randomSkaicius() {
        Random rand = new Random();
        int skaicius = (int) (Math.random() * 50 + 1);
        return skaicius;
    }
}

В этом случае мы сообщаем Spring, что, как только кто-то запросит http://localhost:8080/my/page, метод getMyPage()

В этом методе мы должны вернуть объект ModelAndView, который определяет несколько вещей:

  • Имя представления, в вашем случае - имяшаблона Thymeleaf, что означает my-page (необходимо удалить часть расширения).
  • Название модели, которую вы можете свободно выбирать, например randomSkaicius.
  • Фактическое значение для модели, которое возвращает randomSkaicius().

Например:

@Controller
public class NumberController {
    @GetMapping("/my/page")
    public ModelAndView getMyPage() {
        return new ModelAndView("my-page", "randomSkaicius", randomSkaicius());
    }

    public int randomSkaicius() {
        Random rand = new Random();
        int skaicius = (int) (Math.random() * 50 + 1);
        return skaicius;
    }
}

Теперь, когда вы определили это, вы должны вернуться к своемуШаблон Thymeleaf, и где бы вы ни хотели использовать эту модель, вы должны ссылаться на нее правильно.Мы назвали его "randomSkaicius" в контроллере, так что мы можем поместить что-то подобное в наш шаблон Thymeleaf:

<span th:text="${randomSkaicius}"></span>

Мы используем th:text, чтобы сказать Thymeleaf разрешить эту часть как внутренний текстэтот элемент.Затем мы использовали ${randomSkaicius} для ссылки на модель, которую мы определили ранее в контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...