我正在尝试更新表单上的一些数字值。一旦显示的值没有格式,我就可以轻松地将它们更改为任何数字,并且正确的数字将发送到后端。但是,如果我输入一个大数字(例如6000000),它将在浏览器上更改为6.0E7,但是正确的数字将被发送到后端。我添加了fmt库来格式化数字,但是当我提交表单时,它将发送0到后端。
<%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <s:textfield id="price" name="price" value="%{price}" theme="simple"/> //6.0E7 <input name="price" id="price" value='<fmt:formatNumber value='${price}'/>'/> //0
您不需要使用JSTL的fmt,Struts2具有内置的 Formatting Utilities
然后代替
<s:textfield name="price" value="%{price}" /> <!-- output: 6.0E7 -->
使用例如
<s:textfield name="price" value="%{getText('{0,number,#,##0.00}', {price})}" /> <!-- output: 6000000.00 -->
。