Ressort: la requête envoyée par le client était syntaxiquement incorrecte ()

Salut j'ai reçu la prochaine erreur pendant la redirection:

la demande envoyée par le client était syntaxiquement incorrecte

URL du navigateur affiche est: localhost:8080/Project/menu/main/home/0 et voici mes classes avec redirections first - "DE", second "à":

 /*
 * Get all possible values of menu and generate correct url to pages controllers
 * 
 */

@Controller
@SessionAttributes("menu")
public class MainMenuController {


    @ModelAttribute
    public Menu createMenu() {
        return new Menu();
    }

    @RequestMapping(value = "/menu", method = RequestMethod.GET)
    public String mainMenuResolver(@ModelAttribute Menu menu) {
        menu.setMainMenu("first");
        return "forward:/menu/first";
    }

    @RequestMapping(value = "/menu/{mainMenu}", method = RequestMethod.GET)
    public String subMenuResolver(@PathVariable String mainMenu, @ModelAttribute Menu menu) {
        menu.setMainMenu(mainMenu);
        menu.setSubMenu("home");
        return "forward:/menu/first/home";
    }

    @RequestMapping(value = "/menu/{mainMenu}/{subMenu}", method = RequestMethod.GET)
    public String secMenuResolver(@PathVariable String mainMenu, @PathVariable String subMenu, @ModelAttribute Menu menu) {
        menu.setMainMenu(mainMenu);
        menu.setSubMenu(subMenu);
        menu.setSecMenu("0");

        if (menu.getMainMenu().equals("first")){
            return "redirect:/menu/main/"+menu.getSubMenu()+"/"+menu.getSecMenu();
        }

        if (menu.getMainMenu().equals("second")){
            return "redirect:/menu/religion/"+menu.getSubMenu()+"/"+menu.getSecMenu();
        }

        return "redirect:/menu/main/"+menu.getSubMenu()+"/"+menu.getSecMenu();
    }
}

Deuxième classe:

@Controller
@SessionAttributes("menu")
public class FirstPageController {

    @ModelAttribute
    public Menu createMenu() {
        return new Menu();
    }

    @RequestMapping(value = "/menu/main/{subMenu}/{secMenu}", method = RequestMethod.GET)
    public ModelAndView menuResolver(@PathVariable String mainMenu, @PathVariable String subMenu,@PathVariable String secMenu, @ModelAttribute("menu") Menu menu) {
        menu.setMainMenu(mainMenu);
        menu.setSubMenu(subMenu);
        menu.setSecMenu(secMenu);       

        if (menu.getSubMenu().equals("home")){
            String title = "Project - Home Page";
            return new ModelAndView("MainPage", "title", title);
        }

        String title = "Project - Home Page";
        return new ModelAndView("MainPage", "title", title);
    }
}

Résolu: Je l'ai résolu, il y a un paramètre d'excès dans la méthode de la seconde classe.

19
demandé sur tkanzakic 2012-09-01 18:15:55

4 réponses

dans des cas comme celui-ci, il est très utile d'avoir org.springframework.web niveau logginDEBUGlog4j configuration

<logger name="org.springframework.web">
    <level value="DEBUG" />
    ...
</logger>

E. G. lorsque le paramètre est manquant ou ne peut pas être converti au type requis, il y aura des détails d'exception dans le journal.

34
répondu ike3 2016-11-27 17:45:29

dans mon cas, la raison de cette erreur était que le navigateur (Chrome, dans mon cas particulier) envoyait le date<input type="date" ... /> pour le serveur dans le mauvais format de serveur ne savais pas comment l'analyser.

2
répondu ivan.mylyanyk 2014-05-23 14:54:37

Comme l'a dit ike3, en utilisant le journal détaillé aidé beaucoup à trouver la solution pour moi. Dans mon cas, c'était un décalage entre @PathVariable sans nom spécifié, et la variable elle-même.

quelque Chose comme ceci:

@RequestMapping("/user/{uname}")
public String doSomething(@PathVariable String username) { ...

notez la différence entre" uname "et" username"! Il y avait une exception interne qui n'a pas été soulevée et je ne pouvais pas la voir jusqu'à ce que je mette le log au niveau INFO.

0
répondu antgar9 2017-05-23 12:17:49

dans mon cas, c'était aussi un problème de conversion, Spring attendait un entier cependant j'entrais une chaîne. Essayez de vérifier ce que vous avez passé comme paramètres au contrôleur

0
répondu Youness Marhrani 2017-01-30 22:01:34