URL: https://linuxfr.org/users/epeios/journaux/du-developpement-full-stack-en-java Title: Du développement full-stack en Java Authors: Claude SIMON Date: 2018年08月02日T20:59:09+02:00 License: CC By-SA Tags: Score: 8 ![Java](https://q37.info/download/assets/Java.png "Java logo") # Introduction Dans la continuité de ce [journal](https://linuxfr.org/users/epeios/journaux/le-developpement-full-stack-facilite), voici la version *Java* d'un prototype de bibliothèque facilitant le développement *full-stack* en permettant de développer l'interface web d'une application en *Java*. La version *PHP* (en attendant d'autres langages) devrait suivre sous peu. Je ne suis pas très familier avec l'écosystème *Java*, ni avec *Java* tout court. Du coup, cette bibliothèque est disponible sous forme de fichier `.jar` à télécharger. Je suppose qu'il existe d'autres méthodes pour déployer une bibliothèque *Java*, à l'aide d'outils similaires à *npm* de *Node.js* ; toute information à ce sujet est la bienvenue. Pour la même raison, il y a certainement moyen d'améliorer et le code des exemples, et celui de l'*API* ; n'hésitez pas à m'en faire part dans les commentaires. # *Hello, World!* Pour faciliter la compréhension des principes de base, j'ai développé un genre de [*Hello, World*](https://fr.wikipedia.org/wiki/Hello_world), qui ressemble à ça : ![Hello, World! with the Atlas toolkit](https://q37.info/download/assets/Hello.gif "Hello, World!") Pour l'essayer : - installez, si ce n'est déjà fait, le [*Java Development Kit*](http://www.oracle.com/technetwork/java/javase/downloads/index.html) (*JDK*), - récupérez le fichier `Atlas.jar` (https://q37.info/download/assets/Atlas.jar), - dans le même répertoire, créez un fichier appelé `Hello.java` avec le contenu suivant (ou récupérez ce fichier directement [ici](https://q37.info/download/assets/Hello.java)) : ```java import info.q37.atlas.*; class Hello extends Atlas { public void handle( DOM dom, String action, String id ) { String head = "\"Hello, World !\" example" + ""; String html = "
" + "
" + "
" + " " + " " + " " + "
" + "

" + " Hello " + " " + " !" + "

" + "
" + "
" + "
"; if ( "Connect".equals( action ) ) { dom.headUp( head ); dom.setLayout("", html); } else if ("Typing".equals( action ) ) { dom.setContent("name", dom.getContent(id)); } else if ( "Clear".equals( action ) ) { if ( dom.confirm( "Are you sure ?" ) ) dom.setContents( new String[][] { { "input", ""}, { "name", ""} } ); } else { throw new RuntimeException( "Unknown action '" + action + "' !!!"); } } public static void main(String[] args) throws Exception { launch("Connect" ); for (;;) new Hello(); } } ``` - compilez ce fichier :`javac -cp Atlas.jar Hello.java`, - lancez : - sous *Windows* : `java -cp .;Atlas.jar Hello`, avec un point-virgule (`;`) comme séparateur pour le *classpath*), - sous les autres plate-formes : `java -cp .:Atlas.jar Hello`, avec un deux-points (`:`) comme séparateur pour le *classpath*). # *TodoMVC* Comme exemple plus évolué, il y a l'application du projet [*TodoMVC*](https://todomvc.com), qui ressemble à ça : ![The TodoMVC app. with the Atlas toolkit](https://q37.info/download/assets/TodoMVC.gif "TodoMVC") Pour l'essayer, avec le *JDK* déjà installé : - récupérez le contenu du *repository* (avec *git* d'installé : `git clone https://github.com/epeios-q37/todomvc-java`), - placez, à l'intérieur du *repository* récupéré, le fichier `Atlas.jar` (https://q37.info/download/assets/Atlas.jar), - compilez le fichier source (`javac -cp Atlas.jar main.java`), - lancez, de l'intérieur du *repository* : - sous *Windows* : `java -cp .;Atlas.jar TodoMVC` (avec un point-virgule comme séparateur pour le *classpath*), - sous les autres plate-formes : `java -cp .:Atlas.jar TodoMVC` (avec un deux-points comme séparateur pour le *classpath*). # Quelques liens Une documentation de l'*API* de cette bibliothèque est disponible à l'adresse . Le reste du site n'a pas encore été mis à jour ; il le sera lorsque cette nouvelle *API* sera également disponible pour *PHP*. En particulier, contrairement à ce qui indiqué sur le site, l'utilisation de *XSL(T)* n'est plus obligatoire (mais néanmoins toujours possible) ; vous pouvez générer le code *HTML* nécessaire *a la mano*, ou avec le moteur de *template* de votre choix. Voici les liens vers les sources des différents composants logiciels : - - - - Les deux premiers sont installés localement, mais seul le code *Java* destiné à être exécuté par le *JRE* est utilisé (le code source *C++* contenu dans le répertoire `src` n'est, lui, pas utilisé). Les deux derniers contiennent du code natif, mais ne sont pas installés localement.

AltStyle によって変換されたページ (->オリジナル) /