在Url查询参数中区分空值和空字符串("")

3
如何在Spring MVC中区分没有值的URL,例如/url?var/url?var=""?控制器中的方法HttpServletRequest::getParameterMap()在两种情况下都返回""。我需要区分命令与查询指定资源。请注意保留html标记。
2个回答

3
一种实现你想要的功能的简单方法是使用HttpServletRequestgetQueryString()。你只需检查返回的字符串是否包含你要查找的模式即可。
如果你经常需要这样的操作(例如在许多控制器方法中),你也可以轻松地创建一个自定义的HandlerMethodArgumentResolver,以指示URL中存在一个字符串。 这里是相关的Javadoc,这里是一个例子。

0

/url?var 是一个有效的 URL,它说明你有一个未初始化的参数var

因此,默认情况下它被初始化为空字符串。这是框架的行为。

如果你不想在 HttpServletRequest::getParameterMap() 中看到该参数,请不要与 URL 一起使用它(即 /url 应该是你的调用)。


那并不能解决我的问题。我正在寻找一种方法,例如返回参数映射和那些参数,如/url?car将返回null- /url?query=asd&run -> ["query":"asd", "run":null] - Mati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接