Très simple, spring MVC, cliquez sur le bouton
J'ai le code suivant dans mon SampleController;
@Controller
public class SampleController {
@RequestMapping("home")
public String loadHomePage(Model m) {
m.addAttribute("name", "CodeTutr");
return "home";
}
@RequestMapping(value="/test", method=RequestMethod.GET)
public String handlePost(@RequestParam String action, Model m) {
if( action.equals("save") ){
//handle save
}
else if( action.equals("renew") ){
//handle renew
}
m.addAttribute("name", "change");
return "home";
}
}
au chargement de la page l'attribut je l'ai mis à succès affiché sur la page web. Je suis en train d'essayer d'obtenir ma tête autour de clics sur le bouton sur spring mvc ci-dessous mon code jsp;
<!DOCTYPE HTML>
<html>
<head>
<title>Sample Application</title>
</head>
<body>
<h1>Hello, ${name}!</h1>
<input type="submit" name="action" value="save" />
</body>
</html>
Mon entrée ne fait rien, la méthode handlePost n'est jamais atteint. J'ai essayé de modifier l'attribut "nom" pour le mot "changement", je ne suis pas sûr de ce que je fais mal.
Comment puis essayez de frapper la handlePost méthode?
Veuillez vérifier que le fait d'aller à votre demande cartographie de votre url de frapper devrait être http://<accueil>:<port>/<contexte>/test
Veuillez vérifier que le fait d'aller à votre demande cartographie de votre url de frapper devrait être http://<accueil>:<port>/<contexte>/test
OriginalL'auteur user101010101 | 2013-11-25
Vous devez vous connecter pour publier un commentaire.
Votre problème n'est pas avec le Printemps, c'est avec HTML. Vous ne pouvez pas soumettre un bouton. Vous ne pouvez soumettre qu'une
<form>
.Envelopper votre
<input>
élément dans un<form>
Où
<c:url>
est leurl
tag de lacore
taglib. Maintenant, lorsque vous cliquez sur le bouton, le navigateur va sérialiser vos<input>
éléments d'url-encodé les paramètres de formulaire et de l'envoyer. Elles apparaissent comme des paramètres de la requête à votre serveur web ou d'une application. Le printemps sera désérialiser par leur nom et de les injecter autant d'arguments où vous avez une@RequestParam
paramètre de méthode.OriginalL'auteur Sotirios Delimanolis
Il doit y avoir une forme de l'encapsulation de votre entrée.
Général pour info: Votre "enregistrer" et "renouveler" les cas d'utilisation doivent être séparées des actions de contrôleur.
Également envisager la suppression des "POST" à partir de votre nom d'action. Vu que l'action est décoré avec de l'OBTENIR, et le code html est dire sa OBTENIR
OriginalL'auteur RekrowYnapmoc