Comment faire pour supprimer un enregistrement à l'aide de Spring MVC et annotations
Je suis relativement nouveau pour le Printemps et je suis en train d'accomplir les opérations suivantes:
Disons que j'ai une liste de fruits dans une base de données de tableau avec 2 colonnes "id" et "nom". J'aimerais avoir une page affichant la liste et un bouton "supprimer" à côté de chaque fruit. Je pensais que ce serait facile à réaliser mais je ne peux pas la comprendre et ne pouvez pas trouver un tutoriel expliquant cela.
C'est ce que j'ai pour le moment:
Vue:
<c:forEach items="${fruits}" var="fruit">
<tr>
<td><c:out value="${fruit.name}" /></td>
<sec:authorize access="hasRole('admin')">
<td>
<a href="<c:url var="deleteUrl" value="/fruit/remove.html"/>">DELETE</a>
<form id="${fruitFormId}" method="POST">
<input id="fruit" name="fruit" type="hidden" value="${fruit.id}"/>
</form>
</td>
</sec:authorize>
</tr>
</c:forEach>
Puis le contrôleur:
@Controller
public class FruitController{
@Autowired
private FruitManager fruitManager;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String getFruits(ModelMap model) {
model.addAttribute("fruits", this.fruitManager.getFruits());
return "list";
}
@RequestMapping(value = "/fruit/remove", method = RequestMethod.POST)
public String removeAd(Fruit fruit) {
fruitManager.removeFruit(fruit);
return "/list";
}
Je ne suis même pas sûr que je suis en utilisant le "bon et propre" chemin à droite maintenant et voudrais réaliser cette "le droit chemin", à la suite de conventions le cas échéant.
- Ce que vous utilisez à la couche Persistante? JDBC Modèle, Hibernate ou JPA?
- suis à l'aide de JDBC (ma classe dao s'étend JdbcDaoSupport). A l'avenir, je voudrais tenter d'utiliser Hibernate.
Vous devez vous connecter pour publier un commentaire.
Vous code est correct, à l'exception de deux petits problèmes:
- vous n'aurez pas recivce la
fruit
mais lafruitId
.- vous avez besoin d'un formulaire HTML avec un bouton envoyer, au lieu de le lien
De sorte que vous aurez besoin pour vous corriger contrôleur un peu.
Alors je vous recommande de réorienter après un POST (au lieu de retour direct à la page de la liste), de sorte que vous n'aurez pas un problème si l'utilisateur presse le Navigateur refesh bouton après qu'il supprime un fruit.
Pour le HTML des choses que vous n'ont pas besoin de JQuery ou JavaScript, sauf que vous voulez de message de confirmation de suppression.
C'est facile, mon pote. Vous venez de lier une fonction ajax pour le bouton supprimer avec Jquery ou autre chose, mais d'abord je tiens à vous confirmer projet peuvent exécuter bien dans tomcat. Un problème que j'ai trouvé en vous code est que la méthode removeAd(Fruits de fruits). vous pouvez passer un objet de Fruits avec http, vous pouvez juste obtenir l'Id de fruits. changement de la méthode de removeAd(String id). et dans la méthode, vous pouvez utiliser la demande.getParameter() pour obtenir la valeur.
C'est le tutoriel que je vous recommande: http://www.ibm.com/developerworks/web/library/wa-spring3/index.html.