在我的应用程序中,我有多个Spring控制器,它使用相同的域对象ComplexObject处理发布请求:
@Controller
public class MyController {
@RequestMapping(method = RequestMethod.POST)
public String processComplexForm (
@NotNull @Valid @ModelAttribute("complexObject") ComplexObject compexObject,
BindingResult result, HttpServletRequest request, HttpSession session) {
//implementation
}
}
public class ComplexObject {
private String myProperty;
}
现在我想让用户自由地在表单中的一个属性中写入空格。所以我需要从属性中删除所有空格,以统一输入。我想只在一个地方制作它,而不是在所有使用ComplexObject的控制器中制作它。
我的解决方案是删除属性的setter方法中的所有空格,如下所示:
public setMyProperty (String myProperty) {
this.myProperty = myProperty.replace(" ", "");
}
您是否看到此解决方案存在任何问题,您是否为此问题提供了更优雅,更安全的解决方案。
答案 0 :(得分:0)
对我来说听起来很合理,尽管您可能希望使用StringUtils.replaceChars()
这是空的安全 - 以防myProperty
为空。
public setMyProperty (String myProperty) {
this.myProperty = StringUtils.replaceChars(myProperty, ' ', '');
}