如何将随机数从Java类传递到html文件
我试图通过thymeleaf学习更多spring框架,但现在我想在一个类中生成一个随机数,然后传递到html文件以将其打印出来。我做得对吗?所以我有一个类编号控制器,在这里我生成我的随机编号:如何将随机数从Java类传递到html文件,java,spring-boot,spring-mvc,thymeleaf,Java,Spring Boot,Spring Mvc,Thymeleaf,我试图通过thymeleaf学习更多spring框架,但现在我想在一个类中生成一个随机数,然后传递到html文件以将其打印出来。我做得对吗?所以我有一个类编号控制器,在这里我生成我的随机编号: public class numberController { public int randomSkaicius() { Random rand = new Random(); int skaicius = (int) (Math.random() * 50 +
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>
信息私隐藻
Nuotraukos ID:+${numberController.randomskaciius}
首先,您必须确保您的Thymeleaf模板位于正确的位置(src/main/resources/templates),并记住其名称(例如my page.html)
下一步是,您必须使用@controller
注释正确地告诉SpringNumberController
实际上是一个控制器:
@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;
}
}
@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;
}
}
在本例中,我们告诉Spring,只要有人请求,就会触发getMyPage()
方法
在该方法中,我们必须返回一个ModelAndView
对象,它定义了一些东西:
- 视图的名称,在您的例子中,是Thymeleaf模板的名称,意思是
(您必须删除扩展部分)my page
- 模型的名称,您可以自由选择,例如
randomskaciius
- 模型的实际值,即
返回的值randomskaciius()
@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;
}
}
@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将该部分解析为该元素的内部文本。然后,我们使用${randomskaciius}
引用了我们之前在控制器中定义的模型。我不熟悉thymeleaf,但是randomskaciius()
是一个方法,你不也必须在html中调用该方法吗?你的确切意思是调用吗?@HenrikasB像${numberController.randomskaciius>那样调用该方法()}
哦,对了。我试过这种方法,但在我的兄弟身上仍然看不到一个数字。您是在numberController
中使用@Controller和@RequestMapping还是在Spring MVC中使用任何基于XML的配置?哇,这是一个多么好的解释啊..谢谢。