Как поместить URL-адрес перенаправления, в котором есть PathVariable, в Spring MVC - PullRequest
0 голосов
/ 31 октября 2019

Я пытался найти способ перенаправить ссылку с контроллера Spring MVC, но я нашел решение, только если ссылка не имеет PathVariable.

Это мой контроллер

@RequestMapping(value="dokter/update/{idDokter}", method = RequestMethod.POST)
    public String changeDokterFormSubmit(@PathVariable Long idDokter, @ModelAttribute DokterModel dokter, Model model, HttpServletRequest request) throws Exception{
        System.err.println(request.getParameter("Tanggal lahir"));
        DateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
        Date date = sdf.parse(request.getParameter("Tanggal lahir"));
        dokter.setTanggalLahir(date);
        System.err.println(dokter.getTempatLahir());
        dokter.setNik(dokter.getNik());
        DokterModel newDokterData = dokterService.changeDokter(dokter);
        model.addAttribute("dokter", newDokterData);
        return "redirect:'/dokter/view/'+${newDokterData.getNik()}";
    }

, где это метод, которого я хочу достичь.

 @RequestMapping("/dokter/view/{nikDokter}")
    private String detilDokter(
            @PathVariable String nikDokter,
            Model model
    ){
        DokterModel dokter = dokterService.getDokterByNik(nikDokter).get();
        Boolean gender = dokter.getJenisKelamin();
        String result = "Laki-laki";
        if(gender){
            result = "Perempuan";
        }
        model.addAttribute("dokter", dokter);
        model.addAttribute("gender", result);
        model.addAttribute("spesialis", spesialisService);
        return "detil-dokter";
    }

Когда я попробовал это, я получил эту ошибку

java.lang.IllegalArgumentException: Model has no value for key 'newDokterData.getNik()'

Но сам POST на самом деле работает, так как сами данные изменились идеально. Как мне подойти к этой проблеме?

БОНУС

Для дальнейшего использования, если мой метод detilDokter такой:

@RequestMapping("/dokter")
    private String detilDokter(
            @RequestParam String nikDokter,
            Model model
    ){
        DokterModel dokter = dokterService.getDokterByNik(nikDokter).get();
        Boolean gender = dokter.getJenisKelamin();
        String result = "Laki-laki";
        if(gender){
            result = "Perempuan";
        }
        model.addAttribute("dokter", dokter);
        model.addAttribute("gender", result);
        model.addAttribute("spesialis", spesialisService);
        return "detil-dokter";
    }

Как происходит перенаправлениедолжно выглядеть в changeDokterFormSubmit?

1 Ответ

1 голос
/ 02 ноября 2019

Это должно работать

int or String p1="1";
int or String p2="1";

return "redirect:/abc/xyz/"+p1;

return "redirect:/abc/xyz/"+p1+"/"+p2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...