当前位置: 代码迷 >> java >> 如何将随机数从 Java 类传递到 html 文件
  详细解决方案

如何将随机数从 Java 类传递到 html 文件

热度:62   发布时间:2023-07-31 11:35:03.0

我正在尝试使用 thymeleaf 学习更多 spring 框架,但现在我想在一个类中生成一个随机数,然后传递给 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>

首先,您必须确保您的 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注释来做到这@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,只要有人请求 ,就会触发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"其命名为"randomSkaicius" ,因此我们可以在我们的 Thymeleaf 模板中放置如下内容:

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

我们使用th:text告诉 Thymeleaf 将该部分解析为该元素的内部文本。 然后我们使用${randomSkaicius}来引用我们之前在控制器中定义的模型。

  相关解决方案