[英]How to set default PathValue in a Spring REST service
我正在嘗試創建一個動態Rest服務,接受一個或多個動態PathVariable。 萬一未指定默認值,如何設置默認PathVariable?
@GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"})
public String salutoDinamico(
@PathVariable(value="nome")@Value("Bar") String nome,
@PathVariable(value="cognome")@Value("Foo") String cognome
) {
return "Ciao Mondo da "+cognome+" "+" "+nome;
}
您將必須指定單獨的@GetMappings
,它們根本沒有變量
您可以像這樣手動進行操作:
@GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"})
public String salutoDinamico(
@PathVariable(value="nome", required=false)String nome,
@PathVariable(value="cognome", required=false)String cognome
) {
if(nom == null){
nom = "default value - nome";
}
if(cognome == null){
cognome= "default value - cognome";
}
return "Ciao Mondo da "+cognome+" "+" "+nome;
}
PathVariable
批注具有名為required
的屬性。 將該屬性設置為false以獲取可選值。 同樣,Apache StringUtils
類具有用於默認設置的有用功能。
嘗試這個:
@GetMapping("/dynamic/{cognome}/{nome}"})
public String salutoDinamico(
@PathVariable(value="nome", required=false)@Value("Bar") String nome,
@PathVariable(value="cognome", required=false)@Value("Foo") String cognome )
{
final String nomeValue = StringUtils.defaultIfBlank(nome, "defaultNome");
final String cognomeValue = StringUtils.defaultIfBlank(cognome, "defaultCognome";
return "Ciao Mondo da " + cognome + " " + nome;
}
您不能具有可選的路徑變量,但是可以有兩個調用相同服務代碼的控制器方法:
@GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"})
public String salutoDinamico(
@PathVariable(value="nome")@Value("Bar") String nome,
@PathVariable(value="cognome")@Value("Foo") String cognome) {
return "Your Return Here;
}
解決方案如下
@GetMapping(value={"/dynamic","/dynamic/{cognome}","/dynamic/{cognome}/{nome}"})
public String salutoDinamico() {
return "Your Null Return Here;
}
如果您有兩個以上的可選路徑元素,則應認真考慮切換其中一些以請求參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.