gpt4 book ai didi

java - Spring路径绑定(bind): is it bound directly to the variable or does it invoke the constructor/setters?

转载 作者:行者123 更新时间:2023-12-04 06:39:02 24 4
gpt4 key购买 nike

我有一个显示用户信息的 Spring 绑定(bind)表单(modelAttribute)。
用户的电话号码以格式化的方式显示,但要求是将号码保存到数据库中,不带任何符号。

因此,在我的用户对象的 getter 方法中,我根据规则格式化电话号码,并在 setter 中输入代码以删除特殊符号。
格式化部分工作正常,但我删除标志的 setter 部分似乎没有出现。

在我的构造函数中,我也做了:

setTelephoneNumber(TelephoneNumber);

所以构造函数也调用了setter。

我正在使用 Spring 3.0.4 和 Spring-mvc。

对此问题以及如何解决该问题的任何意见将不胜感激。

编辑:
Controller 部分:

model.addAttribute("user", user);

JSP(缩短了一点,但这是要点。submitUrl 是由于门户环境:
<form:form action="${submitUrl}" modelAttribute="user">
<form:input path="telephoneNumber"/>
</form>

型号电话号码 setter :
if(!StringUtils.isBlank(telephoneNumber)){
this.telephoneNumber = telephoneNumber.replaceAll("[^0-9]", "");
} else{
this.telephoneNumber= "";
}

我认为是这样,因为值以我使用的格式进入数据库。 (间距)

最佳答案

即使这不是您问题的正确答案:

我强烈建议通过 setter getter 以其他方式进行格式化

Spring 3.0 提供了他们称之为“类型转换”的东西

  • spring blog with example
  • spring reference "Validation, Data Binding, and Type Conversion"

  • 使用它会更干净。

    关于java - Spring路径绑定(bind): is it bound directly to the variable or does it invoke the constructor/setters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4507344/

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