Spring路径绑定:它是直接绑定到变量还是调用构造函数/ setter?

我有一个弹出绑定表单(modelAttribute),它显示用户信息。 用户的电话号码以格式化的方式显示,但要求是号码保存到数据库而没有任何标志。 因此,在我的用户对象的getter方法中,我根据规则格式化电话号码,在设置器中我放置代码以删除特殊符号。 格式化部分工作正常,但我删除标志的setter部分似乎没有发生。 在我的构造函数中,我也做了:
setTelephoneNumber(TelephoneNumber);
所以构造函数也调用setter。 我正在使用Spring 3.0.4和Spring-mvc。 关于这个问题的任何意见以及如何解决它将不胜感激。 编辑: 控制器部分: model.addAttribute(“user”,user); JSP(缩短了一点,但这是要点.reportUrl是由门户环境引起的:
<form:form action="${submitUrl}" modelAttribute="user">
<form:input path="telephoneNumber"/>
</form>
型号phoneNumber setter:
if(!StringUtils.isBlank(telephoneNumber)){
    this.telephoneNumber = telephoneNumber.replaceAll("[^0-9]", "");
} else{
    this.telephoneNumber= "";
}
而且我认为是因为价值随着我使用的格式而落在数据库中。 (间距)     
已邀请:
回到你的问题: Spring路径绑定:它是直接绑定到变量还是调用构造函数/ setter? 由于我了解Java Doc和一些代码片段,Spring使用BeanWrapper(BeanWrapperImpl)来设置Beans的值(@see Reference:5.4 Bean操作和BeanWrapper)。和BeanWrapperImpl的行为类似于引用说: 使用setter和getter来访问“简单”值。 它与“5.4.1设置和获取基本属性和嵌套属性”一节中所述的引用完全相同:对于表达式“name”:   表示属性名称   对应方法getName()   或isName()和setName(..) 所以至少这回答了你的问题,所以我认为你的问题的原因是其他的东西。     
即使这不是您问题的正确答案: 我强烈建议用setter getter以另一种方式进行格式化 Spring 3.0提供了他们称之为“类型转换”的东西 春天的博客与例子 弹簧参考“验证,数据绑定和类型转换” 使用它会更清洁。     

要回复问题请先登录注册