在 Spring 请求处理程序中处理请求中传入的空值
在春季 3:
我的Bean:
public class UserFormBean {
private String userEmail;
private String userMobNo;
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserMobNo() {
return userMobNo;
}
public void setUserMobNo(String userMobNo) {
this.userMobNo = userMobNo;
}
}
以及我在控制器中的请求处理程序:
@RequestMapping(value = "/userData", method = RequestMethod.GET)
String userData(UserFormBean bean){
//code to handle incoming data
}
如果用户在请求时未在 'userEmail'
和 'userMobNo'
属性中设置任何值,则 spring 默认设置 <这些属性中的 code>null ,当我通过 String str = bean.getUserEmail(); 在请求处理程序中获取这些属性的值时,它会返回双引号中的 null喜欢
“空”
。
当这些 null
值包含 null
时,有什么方法可以将它们转换为 "" (blank)
因为我创建了一个额外的处理程序来处理这些 "" (blank)
代码>“空”值。或者有更好的想法来解决这个问题。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为最简单的方法是将属性初始化为空字符串:
I think the easiest way would be to initialize the properties to the empty String:
我怀疑 setter 是用“\”null\””调用的新值。试试这个:
I suspect the setter is called with "\"null\"" for the new value. Try this:
您可以定义命名“Web 方法”的标准,例如:
当所有方法都以 web* 开头时,您可以编写一个方面来根据需要初始化所有参数。
如果您需要有关创建和定义方面的帮助,请直接询问。
更新:创建和定义方面
我不会为您编写代码,因为通过阅读文档来学习对您来说要好得多 - 您将了解很多额外的细节。
也就是说,创建切面的步骤是:
在您的方面代码中,您将必须访问 当前方法参数 并执行设置空字符串值的逻辑字符串。
You could define a standard for naming your "web methods", for example:
When all your methods start with web*, then you can write an aspect that will initalize all arguments as you would like.
If you need help about creating and defining an aspect, just ask.
UPDATE: creating and defining an aspect
I will not write the code for you, because it's much better for you to learn by reading the documentation - you will get to know a lot of extra details.
That said, the steps to create an aspect are:
In your aspect code you will have to access the current method arguments and do your logic for setting the empty string values for Strings.