设为我的自定义类型(请注意,没有setters,因为这是一个不可变的值对象):
class CustomType extends ValueObject {
private String value;
@NotNull
public String getValue();
CustomType(String value) { this.value = value;}
CustomType(String prefix, String suffix) { this.value = prefix + suffix;}
public String getPrefix() { return value.substring(0, 4);}
public String getSuffix() { return value.substring(4);}
}
和我的控制器:
@Controller
class MyController {
public ModelAndView processSubmittedForm(@Valid CustomType myObject, BindingResult result) {..}
}
和我的jsp视图表单:
<form>
<input id="prefixField" name="prefix" value="756." type="hidden">
<input id="suffixField" name="suffix" type="text">
...
<form/>
考虑到此视图将发送两个POST参数前缀
和后缀
,我需要做什么才能让这两个参数与单个对象绑定myObject
,假设它将被Spring验证为非空值?
我可以通过自定义WebDataBinder、InitBinder、注册格式化程序或自定义编辑器等来实现这一点吗?
非常感谢你的帮助。
编辑:以下是我在google上搜索到的相关文章,但没有找到与我自己的问题相匹配的解决方案:
<form>
<input id="prefixField" name="prefix" value="756." type="hidden">
<input id="suffixField" name="prefix" type="text">
。。。
Declare prefix field in your object(i.e commandName).
@fabien7474,您可以使用PropertiesEditor,因为如果我们稍微看看HTTP协议,请求中的所有参数都是字符串,当您需要执行某种类型转换或验证时,spring会为您提供一种初始化binder的方法。
示例:
@Controller
class MyController {
public ModelAndView processSubmittedForm(@Valid MyObject myObject, BindingResult result) {..}
@InitBinder
public void initBinder (WebDataBinder binder) {
binder.registerCustomEditor(MyObject.class, new CustomObjectEditor());
}
}
class CustomObjectEditor {
@Override
public void setAsText(String text) throws IllegalArgumentException {
MyObject ob = new MyObject();
CustomType ct = new CustomType();
ct.setValue(text);
ob.setCustomType(ct);
super.setValue(ob);
}
}
通过这个例子,你可以看到一种对话。希望这对你有所帮助。
我想将spring date字段绑定到pojo类并返回日期 DateOfBornd的类型为java.sql.Date。现在,当我将日期从spring形式传递给函数setDateOfBorning时,它取空值 例如,在register.jsp(注册表单)中,我有specific字段 java(Pojo类) 当我调用getDateOfBorne()时 返回: 预期的 我得到的信息: 请帮助我如何转换这
问题内容: 无论如何,我可以将两个模型值绑定到一个输入字段吗? 假设我有一个输入字段,我想将其作为范围内两个变量的值,例如: 问题答案: 您不能,但是有一些解决方法。 1.使用ngChange更新其他模型 2.您可以观看模型,并在更改时更新另一个模型 如果您想使它们保持同步,则还需要注意其中的变化。 这里的例子
问题内容: 在Spring MVC中,将请求 参数 绑定到处理请求的方法参数很容易。我只是用。但是我可以对request 属性 做同样的事情吗?当前,当我想访问request 属性时 ,我必须执行以下操作: 但是我真的很想使用这样的东西: 不幸的是,这种方式行不通。我可以以某种方式扩展Spring功能并添加自己的“绑定器”吗? 编辑 (我要实现的目标) :我将当前登录的用户存储在request属性
问题内容: 我有一个将字符串绑定到如下所示的ODBC语句的代码 它适用于任何常规字符串,但不适用于空字符串。我收到一条错误消息: 错误:[Microsoft] [ODBC SQL Server驱动程序]无效的精度值 我将函数调用更改为此 现在可以插入空字符串,但是它将转换为空格而不是空字符串。 我不想插入NULL值,因为遇到NULL时,许多SQL语句变得违反直觉。有没有办法绑定空字符串? (数据库
我的jsp表单中有一些数字字段(但不是强制的),例如kkqty、sogoqty和sesaqty。因此,当用户没有在这些字段中输入任何内容时,我在控制器端接收到null,因此在保存这些表单数据时会出现Null属性异常 我的POJO(OutletInfo.java) 我的控制器 在控制器中,当我尝试打印所有数值字段时,我在这里收到空值,因此无法保存。 我需要将null转换为默认值0.0,我知道我需要检
我有一个如下的有效载荷。 我的请求Body POJO如下所示。 但是,未正确绑定并引发异常。请提出前进的方向。 异常堆栈: 组织。springframework。http。转换器。HttpMessageEndableException:JSON解析错误:无效数值:不允许前导零;嵌套的异常是com。fasterxml。杰克逊。果心JsonParseException:无效数值:在[Source:(P