Intégration de Vaadin et de Spring MVC
je pense à la possibilité d'utiliser MVC printemps avec cadre Vaadin. Existe-t-il des moyens documentés de les faire jouer gentiment ensemble ? Aussi est-ce une bonne idée de les utiliser ensemble ? concernant les performances, je vais exécuter l'application sur un serveur dédié.
pour rendre ma question un peu plus claire, comment puis-je retourner un modelandview à partir d'un contrôleur MVC de printemps qui va rendre en utilisant Vaadin et peut accéder à toutes les données du modèle.
6 réponses
le soutien de printemps pour Vaadin est tout à fait nouveau, mais il y a eu beaucoup de discussions à ce sujet récemment sur le forum et certains l'ont testé. Semble fonctionner. Il y a un article sur le wiki de Vaadin à ce sujet, et quelques fils sur le forum parlant de L'intégration de Vaadin + Spring:
Wiki: Spring Integration
Forum: peut-on mill toolkit être intégré avec l'application au printemps
Forum: intégration de printemps problème
Forum: Travailler avec le Printemps
Forum: Spring Integration
on ne sait pas si c'est un choix prudent d'intégrer vaadin avec ressort MVC. C'est un gaspillage. MVC est destiné aux applications web typiques basées sur la page où comme vaadin est plus basé sur l'état de la vue comme une application de bureau. Je ferais généralement une réunion dans le milieu et avoir mon niveau d'entreprise et la couche d'accès aux données au printemps et d'utiliser Vaadin comme tel.
d'accord avec dhbo.
il n'est pas sage d'utiliser le ressort mvc, surtout avec webflow avec vaadin. vaadin est un autre cadre d'application web.
si vous voulez l'idée de "spring mvc" dans votre projet vaadin, intégrez-la à spring-core, beans et context. de cette façon, vous pouvez obtenir une séparation claire entre les contrôleurs, ui (vaadin), et les modèles (intégrer avec hibernate / orms)
voici un article sur l'intégration de la couche de service à ressort avec Vaadin. Il ne se rapporte pas directement à MVC de printemps que la question originale portait, mais il peut encore être un indicateur pour d'autres lecteurs de recherche Vaadin Spring intégration.
http://psponcoding.blogspot.com/2011/03/vaadin-spring-integration.html
org.springframework.web.servlet.mvc.Controller
's handleRequest prend un HttpServletRequest
et HttpServletResponse
en tant que paramètres. À partir de ceux-ci, vous ne pouvez pas traiter le fragment D'URI. En tant que tel, le controller n'est pas adapté pour contrôler les requêtes basées sur un fragment D'URI.
dans mon application, j'ai implémenté un concept très similaire au contrôleur à ressort. Ma demande a toujours une notion de "points de vue" et "modèle". Chaque vue est implémentée dans une classe séparée et est affichée dans un bloc central de la page. Je voulais centraliser la logique de la Traitement D'URL vers cette classe, donc j'ai créé une classe AbstractControllerEntry
:
public static abstract class AbstractControllerEntry {
public abstract boolean matches(String fragment);
public abstract void open(MainWindow window, String fragment);
}
avec plusieurs sous-classes commodes comme ConstantEntry
,PrefixEntry
et RegexEntry
.
chaque classe de vue a une méthode statique, qui retourne AbstractControllerEntry
. La collecte de toutes les entrées est conservé dans un tableau statique à l'intérieur de MyController
classe (pas un contrôleur Spring MVC). Lors du changement de fragment (voir UriFragmentUtility), je répète toutes les entrées, et pour la première, qui correspond, je vais appeler ouvert. Tout une autre logique, telle que trouver l'objet model, est à l'intérieur de la classe view, dans le AbstractControllerEntry
mise en oeuvre.
de plus, il y a une autre méthode statique pour générer le fragment URI dans la classe view, de sorte que chaque référence à une vue est une référence réelle à une classe, c'est une solution aux liens rompus. Et chaque vue a une méthode d'instance pour obtenir un fragment pour la vue courante, qui est cochée pour correspondre à une entrée de controller pour augmenter la robustesse.