我正在做一个Spring web。对于控制器方法,我可以使用Request estParam来指示是否需要参数。例如:
@RequestMapping({"customer"})
public String surveys(HttpServletRequest request,
@RequestParam(value="id", required = false) Long id,
Map<String, Object> map)
我想使用PathVariable,例如以下内容:
@RequestMapping({"customer/{id}"})
public String surveys(HttpServletRequest request,
@PathVariable("id") Long id,
Map<String, Object> map)
如何指示是否需要path变量?我需要将其设置为可选的,因为创建新对象时,在保存之前没有可用的关联ID。
谢谢你的帮助!
我知道这是一个老问题,但是搜索“可选路径变量”会让这个答案很高,所以我认为值得指出的是,自从Spring 4.1使用Java1.8以来,使用java.util.可选类是可能的。
一个例子是(注意该值必须列出所有需要匹配的潜在路由,即。有id路径变量而没有。Props to@martin-cmarko以指出这一点)
@RequestMapping(method=GET, value={"/", "/{id}"})
public void get(@PathVariable Optional<Integer> id) {
if (id.isPresent()) {
id.get() //returns the id
}
}
没有办法使其可选,但您可以创建两个方法,其中一个具有@Request estMap({"客户"})
注释,另一个具有@Request estMap({"客户/{id}"})
,然后在每个方法中相应地执行操作。
VTTom的解决方案是正确的,只需将“value”变量更改为array并列出所有url可能性:value={“/”,“/{id}}}
@RequestMapping(method=GET, value={"/", "/{id}"})
public void get(@PathVariable Optional<Integer> id) {
if (id.isPresent()) {
id.get() //returns the id
}
}
问题内容: 我在搞弄JAX- RS,制作了一个应用程序,该应用程序调用产生JSON的REST服务。我尝试了Jersey,一切都很好,但是由于我的应用程序需要使用JDK5进行构建,因此我不得不切换到RESTEasy。我将web.xml更改为以下内容: 因此,我希望每个以/ rest开头的URL都将由RESTEasy处理。我的服务如下: 使用Jersey可以正常工作,http:// localhost
在OS X10.8.2上,我使用JNA和gstreamer-java(通过Eclipse IDE)加载gstreamer库。首先,我使用gstreamer.com提供的SDK安装了gstreamer。但是,我卸载了这个,并使用Macports来安装它。 SDK的lib安装到: 现在,假设我想通过某个环境变量设置java来知道这个位置。这可能吗?看起来是这样,因为运行这条线: 显示。但我一辈子都想不
问题内容: AFAIK,您无需在onclick中指定协议: 坏 好 今天,我在GoogleAnallytics上注意到他们正在使用它: 这个例子是完全错误的,还是有理由指定除?以外的其他内容? 问题答案: 这里的一些响应声称“javascript:”前缀是“过去的遗留物”,这意味着浏览器有意对它进行了特殊处理,以实现向后兼容。是否有确凿的证据证明是这种情况(有人检查过源代码)吗? 对我来说,它的意
问题内容: 考虑以下代码块: 当我在构造函数中初始化两个变量(和)时,其他两个变量(和)是否需要内存中的空间来存储null值? Q1。如果它们确实需要空间,那么值将占用多少内存?(例如,占用4个字节)。 Q2。字符串在内存中占用多少空间?字符串需要多少存储空间?它取决于字符串的长度吗? 问题答案: 在Java中,它只是引用(基本上是受限制的指针)可以具有的值。这意味着引用没有任何意义。在这种情况下
随着新的工具栏小部件的引入和AppCompat(android.support.v7.widget.Toolbar)版本的推出,是否还需要调用setSupportActionbar(工具栏)?或者调用setSupportActionbar有什么好处吗;现在我们可以设置标题、子标题、导航图标、导航图标单击侦听器(getSupportActionBar()。直接在工具栏上设置DisplayHomeAs
问题内容: 我想根据变量是否为null显示/隐藏div。 注意:在我的情况下,变量是一个对象。 这是一个非常简单的问题,但我似乎无法使其正常工作。 谢谢。 问题答案: 需要澄清的是,上面的示例确实有效,示例中的代码由于不相关的原因而无法正常工作。 如果myvar为false,null或之前从未使用过(即从未调用过$ scope.myvar或$ rootScope.myvar),则div将不会显示。