gpt4 book ai didi

data-binding - typeMismatch 消息的 Spring 用法

转载 作者:行者123 更新时间:2023-12-03 13:35:22 26 4
gpt4 key购买 nike

我在网络上和 stackoverflow 中进行了一些搜索,以了解如何处理我在其中一个屏幕上收到的以下消息:

Failed to convert property value of type [java.lang.String] to required type [java.lang.Long] for property 'qtyToShip'; nested exception is java.lang.IllegalArgumentException: Could not parse number: Unparseable number: "a"



从研究和网上看,我认为将以下内容添加到我的 errors.properties 文件会产生预期的结果:
typeMismatch.shippingCommand.qtyToShip=1. Invalid value for Qty To Ship, accepts only numbers.  
typeMismatch.qtyToShip=2. Invalid value for Qty To Ship, accepts only numbers.
shippingCommand.qtyToShip=3. Invalid value for Qty To Ship, accepts only numbers.
qtyToShip=4. Invalid value for Qty To Ship, accepts only numbers.


typeMismatch.java.lang.NumberFormatException=5. Invalid value for {0}, accepts only numbers.
typeMismatch.java.lang.Integer=Must specify an integer value.
typeMismatch.java.lang.Long=Must specify an integer value.
typeMismatch.java.lang.Float=Must specify a decimal value.
typeMismatch.java.lang.Double=Must specify a decimal value.
typeMismatch.int=Invalid number entered
typeMismatch=Invalid type entered

我将整数值添加到消息中以确定将显示哪一个。

现在在我的 JSP 顶部,我有以下内容:
  <center>
<spring:hasBindErrors name="shippingCommand">
<c:if test="${errors.errorCount > 0 }">
<h4>Following errors need to be corrected:</h4>
<font color="red">
<c:forEach items="${errors.allErrors}" var="error">
<spring:message code="${error.code}" arguments="${err.arguments}" text="${error.defaultMessage}"/><br />
</c:forEach>
</font>
</c:if>
</spring:hasBindErrors>
</center>

以上在我的表格之外,在我的表格内,我有以下内容(测试理想)



所以结果是,当我运行我的代码来触发错误时,我看到在我的表单中我收到以下消息:
1. Invalid value for Qty To Ship, accepts only numbers.

来自于此:typeMismatch.shippingCommand.qtyToShip

表格外面显示:
Invalid type entered

我不明白的是为什么我可以在表单内显示正确的消息,但不能在表单外显示?

在 Controller 中,我添加了以下内容:
@Override
protected void initBinder(HttpServletRequest pRequest, ServletRequestDataBinder pBinder) throws Exception
{
NumberFormat numberFormat = NumberFormat.getInstance();
pBinder.registerCustomEditor(Long.class, "qtyToShip", new CustomNumberEditor(Long.class, numberFormat, false));
}

谢谢

最佳答案

也许error.code不保证返回最具体的消息代码。尝试将错误消息作为一个整体传递:

<spring:message message = "${error}" />   

关于data-binding - typeMismatch 消息的 Spring 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4853714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com