Java 在HTML中显示数据时,四舍五入为1位小数
我正在创建一个基本的web应用程序,它在HTML表中显示一些计算的结果 现在我只想显示小数点后1位,但同时将计算结果保留在后端,将所有小数保留在内存中Java 在HTML中显示数据时,四舍五入为1位小数,java,html,jquery,web-applications,Java,Html,Jquery,Web Applications,我正在创建一个基本的web应用程序,它在HTML表中显示一些计算的结果 现在我只想显示小数点后1位,但同时将计算结果保留在后端,将所有小数保留在内存中 <tr th:each="value : ${allvalues}"> <td th:text="${value.firstNumber}" ></td> <td th:text="${value.secondNumber}"
<tr th:each="value : ${allvalues}">
<td th:text="${value.firstNumber}" ></td>
<td th:text="${value.secondNumber}" ></td>
</tr>
访问包含HTML表的页面时出现的错误如下:
2021-02-23 12:23:18.458 ERROR 22364 --- [apr-8080-exec-6] org.thymeleaf.TemplateEngine : [THYMELEAF][http-apr-8080-exec-6] Exception processing template "index": Exception evaluating SpringEL expression: "@mathUtils.formatNumber(value.firstNumber)" (index:187)
Caused by: org.springframework.expression.AccessException: Could not resolve bean reference against BeanFactory
at org.springframework.context.expression.BeanFactoryResolver.resolve(BeanFactoryResolver.java:48) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.expression.spel.ast.BeanReference.getValueInternal(BeanReference.java:55) ~[spring-expression-4.3.8.RELEASE.jar:4.3.8.RELEASE]
... 100 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mathUtils' available
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.8.RELEASE.jar:4.3.8.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081) ~[spring-context-4.3.8.RELEASE.jar:4.3.8.RELEASE]
很可能bean定义或注册有问题。我试着自己弄明白,但没有任何有用的结果
在一个尝试性的解决方案中,我还将@Bean放在公共字符串formatNumber(double number)之前,但是该项目甚至没有部署到我的Tomcat本地服务器上,并给出了一个错误“考虑在配置中定义一个'double'类型的Bean。”也许你的意思是这样的
$("th").each(function() {
const val = this.textContent;
if (!isNaN(val)) this.textContent = Number(val).toFixed(1)
})
假设这个问题是关于使用thymeleaf执行此操作的: 注册bean:
@SpringBootApplication
public class StartWebApplication {
public static void main(String[] args) {
SpringApplication.run(StartWebApplication.class, args);
}
@Bean
public MathUtils mathUtils() {
return new MathUtils();
}
public static class MathUtils {
public String formatNumber(double number) {
// or any other way to get 1 decimal place
return new DecimalFormat("#.#").format(number);
}
}
}
在模板中使用:
<tr th:each="value : ${allvalues}">
<td th:text="${@mathUtils.formatNumber(value.firstNumber)}" ></td>
<td th:text="${@mathUtils.formatNumber(value.secondNumber)}" ></td>
</tr>
请用值显示呈现的HTML。您没有向我们展示何时以及如何解析它,这可能应该有javascript标记,而不是java标记。Java与javascript没有关系。是。问题是如何用百里叶来做这件事。很抱歉没有具体说明。我现在在bean配置方面遇到了问题。我已经用我放置bean的代码片段更新了我的问题。@若将组件放在单独的文件中,它应该可以工作。我在编辑示例中添加了如何在StartWebApplication主类中执行此操作
<tr th:each="value : ${allvalues}">
<td th:text="${@mathUtils.formatNumber(value.firstNumber)}" ></td>
<td th:text="${@mathUtils.formatNumber(value.secondNumber)}" ></td>
</tr>