2009-04-25 11 views
4

Cette question était originaire dans ma tête comme "Puis-je utiliser les contrôles AWT dans une servlet?", ce qui montrera toute mon ignorance sur le sujet. Je suis novice dans les technologies JAVA mais après un peu de lecture, il me semble comprendre que les commandes AWT connectent directement les éléments de l'interface graphique du système d'exploitation, donc il est impossible d'utiliser ou d'étendre JPanels, JButtons et ainsi de suite dans une servlet injecté dans une JSP et laisser le navigateur rendre ces contrôles (une alternative pourrait probablement être l'incorporation d'une applet dans une JSP mais je ne veux pas faire ça).Comment créer des contrôles Web personnalisés Java?

Je suis à la recherche d'un moyen de construire des contrôles web personnalisables réutilisables en utilisant des JSP et des Servlets.

Comment cela se fait-il habituellement et pouvez-vous fournir des échantillons/liens? Cela fait partie d'un test que je fais au Google Application Engine - il serait donc logique pour moi d'explorer le Google Web Toolkit - tout pointeur dans ce sens serait également apprécié.

Toute aide appréciée!

Répondre

4

AWT est la partie spécifique à l'OS du rendu de l'interface utilisateur sur le bureau, pas sur le côté Web des choses dans lesquelles vivent JSP, Servlets, etc. Un peu plus spécifiquement, des choses comme Swing (qui a ces JPanels, JButtons et ainsi de suite que vous avez mentionné comme composants UI) et SWT sont actuellement basées sur AWT et fonctionnent sur le dessus pour rendre l'interface utilisateur et lui permettre de fonctionner comme prévu. Malheureusement, tout cela signifie que vous ne pouvez pas utiliser les composants AWT sur les pages Web, car les pages Web sont (généralement) indépendantes de la plate-forme en ce sens qu'elles ne peuvent pas décider exactement comment les parties de l'interface utilisateur sont rendues. , il ya juste une pile de balisage qui est traitée comme une sorte de plaidoyer au navigateur Web pour faire des choses que le concepteur de Web espère sans garantie 100% que le résultat final sera ce que le concepteur a voulu. Il y a eu beaucoup de réinventer la roue pour créer une interface utilisateur de type Swing/AWT du côté Web de Java car c'est un modèle intelligent, comme vous le savez déjà Google Web Toolkit essaie de faire sa part pour que le Web ressemble plus à une application de bureau alors qu'en réalité, il suffit d'automatiser le JavaScript Ajax nécessaire ci-dessous pour faire de la page Web se comporter comme s'il s'agissait d'une application de bureau. Un autre cadre pour cela est Tapestry que je n'ai pas personnellement utilisé mais certains pensent que c'est un choix décent aussi.

Et puis il y a bien sûr mon favori personnel Apache Wicket qui vous permet d'avoir une véritable séparation entre le code Java et le balisage et il se comporte tout à fait comme le code Swing UI! En fait, il y a tout un tas de collisions de noms avec les classes de composants de l'interface utilisateur de Swing pour les choses les plus simples. En supposant que vous soyez familier avec le codage d'une interface d'application de bureau, je recommande fortement Wicket, il élimine les parties ennuyeuses et fastidieuses (servlets, résolution d'URL, bookmarkability, sécurité ...) et les remplace par un modèle événementiel similaire (mais pas égal) à EDT de Swing qui est où la magie d'interface de bureau se produirait normalement.Avec Wicket, vous pouvez créer un tel ensemble de composants Web POJO que vous pouvez réutiliser n'importe où et obtenir ainsi ce que vous avez demandé. Un mot d'avertissement cependant, Wicket suppose que vous savez vraiment comment coder avec Java et certaines choses ridiculement faciles peuvent être fastidieuses au début mais à la fin vous devriez être assez content de ce que vous avez.

+0

merci pour l'aperçu utile :) – JohnIdol

1

Dans JSP, vous recherchez probablement des balises personnalisées. Les balises personnalisées permettent de créer des composants de code réutilisables à utiliser dans l'affichage des pages JSP. Il y en a de très jolis, comme ceux qui se trouvent dans le struts2 framework ou le display tags library.

Mais vous pouvez écrire les vôtres ou étendre les existants avec de nouvelles fonctionnalités.

Questions connexes