De base Spring MVC Liaison de Données
Je suis en train d'apprendre Spring MVC et j'ai cherché partout pour faire juste un contrôleur de base pour afficher la liaison de données, mais rien, j'ai essayé de travailler. Je peux lier la vue affichage au contrôleur et je peux voir le pojo avec des propriétés de là, mais à chaque fois que j'ai essayé d'ajouter l'objet pour le modèle je ne reçois rien. Voici ce que j'ai à ce jour:
Contrôleur
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
model.addAttribute(new Person());
return "home";
}
@RequestMapping(value="/about", method=RequestMethod.POST)
public void about(Person person, Model model)
{
model.addAttribute("person", person);
}
}
Classe je veux lier
public class Person {
private String _firstName;
private String _lastName;
private Date _Birthday;
//Set
public void setFirstName(String FirstName){this._firstName = FirstName; }
public void setLastName(String LastName){this._lastName= LastName; }
public void setBirthDate(Date BirthDate){ this._Birthday = BirthDate;}
//get
public String getFirstName(){return _firstName;}
public String getLastName(){return _lastName;}
public Date getBirthDate(){return _Birthday;}
}
Vue - Contrôleur-de-Forme ! Travail
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<html>
</head>
<body>
FirstName: ${model.person.getFirstName}
LastName: ${model.person.getLastName}
</body>
</html>
Ce que je peux ou besoin de cela pour faire obtenir à lier?
OriginalL'auteur Kai CriticallyAcclaimed Cooper | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
L'attribut du modèle est la chose qui vous manque ici.
L'idée est que l' @ModelAttribute méthode sera invoquée sur la GET et POST, sur la requête GET, il va juste être exposé à la vue, où, comme sur le POST, il sera utilisé pour lier les paramètres de la requête.
Noter que le
BindingResult
est passé à la méthode POST, de sorte que vous pouvez faire quelque chose avec la commande.OriginalL'auteur Gareth Davis
1) le contenu de La modelMap sont implicites dans la page JSP. Vous n'avez pas besoin de spécifier le modèle de la "" lorsque vous y accédez.
2) JSP-EL accède à des champs via bean accesseurs de propriété, n'est pas en invoquant les méthodes. Vous n'indiquez pas " get " pour appeler une méthode. Vous utilisez le haricot nom de la propriété. par exemple, ${personne.firstName} pour obtenir le résultat de la personne.getFirstName();
`
<form:form action="about.html" commandName="person" > <form:input path="FirstName"/> <form:input path="LastName"/> <input type="submit" value="Submit" /> </form:form>
La maison.jsp, je peux lier de Vue du Contrôleur. Pour l'image complète. MerciOriginalL'auteur Affe
Vous avez besoin de changer la Personne objet, les attributs ne doivent pas avoir un "_" avant cette. Le changement "_firsName" "prénom". Le getter, setter sont beaux. Printemps de liaison de passe, noms d'attribut correspondant getter et setter.
Aussi changer la façon dont vous accédez à la vue. Utiliser comme ${personne.firstName}. Vous n'avez pas besoin d'un "modèle" avant la "personne.firstName" et aussi que vous n'avez pas besoin de mentione getFirstName, le printemps fait automatiquement pour vous.
OriginalL'auteur raddykrish
Veuillez vérifier votre Personne variable de classe, les méthodes getter et setter de nommage. Méthode de lecture doit commencer par " get " et première capitale de la lettre de votre nom de variable et de, même chose pour les autres lettres, par exemple :
getFirstName()
et de la méthode de définition devrait également comme méthode de lecture. Si la convention de nommage de vos méthodes getter et setter sont différents, la liaison ne fonctionne pas correctement. Voici la mise à jour de la version de votre classe Personne.OriginalL'auteur Thiha Zaw