3

私は次のコードを書きました:

@Controller
@RequestMapping("/page{number}")
public class IndexController
{ 
    @RequestMapping(method = RequestMethod.GET)
    public String printIndex(ModelMap model, @PathVariable int number)
    {
        String numberText;

        switch (number)
        {
            case 0:
                numberText = "Zero";
                break;
            case 1:
                numberText = "One";
                break;
            default:
                numberText = "Unknown";
                break;
        }

        model.addAttribute("number", numberText);

        return "page";
    }
}

そして、このメソッドで制御されるpage1.html、page2.html、page3.htmlなどのURLを実現しようとしています。ただし、page.htmlはpage1.htmlと同じ結果になるはずです。{number}をオプションにするものを探していますが、今は必須です。

私が言ったときにそれを行う方法はありますか?

/

4

4 に答える 4

15

次のようなものを使用できます。

@RequestParam(value = "name", defaultValue = "") Long name

プリミティブのラッパー(longなど)ではなく、ラッパー(Longなど)を使用する必要があることに注意してください。

これがお役に立てば幸いです。

于 2013-01-25T19:50:25.487 に答える
7

これはどう:

@Controller
public class IndexController
{ 
    @RequestMapping("/page{number}")
    public String printIndex(ModelMap model, @PathVariable("number") int number)
    {
        String numberText;

        switch (number)
        {
            case 0:
                numberText = "Zero";
                break;
            case 1:
                numberText = "One";
                break;
            default:
                numberText = "Unknown";
                break;
        }

        model.addAttribute("number", numberText);

        return "page";
    }
    @RequestMapping("/page")
    public String printIndex(ModelMap model)
    {
        return printIndex(model, 1);
    }    
}
于 2012-09-10T20:55:35.950 に答える
1

カスタムWebArgumentResolverとアノテーション@OptionalPathVariableを実装し、それを自分で処理することをお勧めします

于 2012-09-10T21:08:17.140 に答える
0

RestAPI-オプションのパラメーターと値の変更

@GetMapping(value = "/country/list")
public ResponseEntity<?> companyInformationList
(
Pageable pageable,
@RequestParam(name = "q", required = false,defaultValue = "") String q,
@RequestParam(name = "sortby", required = false, defaultValue = "companyId") String sortby,
@RequestParam(name = "order", required = false, defaultValue = "desc") String order,
@RequestHeader(value = "Accept-Language", defaultValue = "ar") String lang ) {

        
        if(sortby.equalsIgnoreCase("countryName")) {
            if(lang.equalsIgnoreCase("en")) {
                sortby="countryNameEn"; 
            }else
            if(lang.equalsIgnoreCase("ar")) {
                sortby="countryNameAr";
            }else
            if(lang.equalsIgnoreCase("fr")) {
                sortby="countryNameFr";
        }
于 2019-04-03T07:45:26.960 に答える