Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
javaee:td5 [2013/12/03 01:52] – [5- Templates] jcheron | javaee:td5 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
---|
* Mapping relationnel/objet | * Mapping relationnel/objet |
* Conception de vues | * Conception de vues |
| |
| ==== Ressources ==== |
| |
| * [[http://tutorials.kobject.net/java|Tutoriels KObject Java EE]] |
| * [[https://sourceforge.net/projects/kobject/files/latest/download?source=directory |Librairie KObject-1.0.0.25a-beta1]] |
==== Contexte ==== | ==== Contexte ==== |
| |
==== Base de données ==== | ==== Base de données ==== |
| |
* Créer la base de données **avisDb**, en exécutant le script dans phpMyAdmin | * Créer la base de données **avisDb**, en exécutant le script dans phpMyAdmin : {{:j2ee:td5:avisdb.sql|}} |
| |
{{:j2ee:td5:diagramtd5.png?|}} | {{:j2ee:td5:diagramtd5.png?|}} |
==== -- Configuration ==== | ==== -- Configuration ==== |
| |
* Dans Eclipse, [[http://tutorial.kobject.net/java/installeclipseplugin|installer le plugin KObject]] | - Dans Eclipse, [[http://tutorial.kobject.net/java/installeclipseplugin|installer le plugin KObject]] |
* Créer le Dynamic web project **koTd5** | - Créer le Dynamic web project **koTd5** |
* Ajouter les jars suivants dans le dossier **WebContent/WEB-INF/lib** du projet | - Ajouter les jars suivants dans le dossier **WebContent/WEB-INF/lib** du projet |
* {{:j2ee:mysql-connector-java-5.0.8-bin.jar|}} | * {{:j2ee:td5:mysql-connector-java-5.1.14-bin.jar|}} |
* [[https://sourceforge.net/projects/kobject/files/latest/download|Librairie KObject 1.0.0.25a]] | * [[https://sourceforge.net/projects/kobject/files/latest/download|Librairie KObject 1.0.0.25a]] |
* [[http://tutorial.kobject.net/java/usekoplugin|Ajouter KObject au projet]] | - [[http://tutorial.kobject.net/java/usekoplugin|Ajouter KObject au projet]] |
| - Remplacer le fichier **userStyle.css** dans le dossier **css** : {{:j2ee:td5:userstyle.css|}} |
==== -- Génération du modèle ==== | ==== -- Génération du modèle ==== |
| |
| |
{{:j2ee:td5:validationjsperso.png?|}} | {{:j2ee:td5:validationjsperso.png?|}} |
| |
| * Associer **tel2** au type du membre **tel** de **KEntreprise** dans **kox.xml** : |
| |
| <sxh xml;title:conf/kox.xml;highlight:[6]> |
| <class name="KEntreprise" caption="Entreprise"> |
| <member max="60" name="rs" required="1" type="string" caption="Raison sociale"/> |
| <member max="200" name="adresse" required="0" type="string" caption="Adresse"/> |
| <member max="11" name="idVille" required="0" type="int" caption="Ville"/> |
| <member max="200" name="mail" required="0" type="mail" caption="Mail"/> |
| <member max="20" name="tel" required="0" type="tel2" caption="Tél."/> |
| </class> |
| </sxh> |
| |
* Vérifier la validité de l'expression dans le formulaire **entreprise.view** en ayant au préalable redémarré l'application via **classes.main** | * Vérifier la validité de l'expression dans le formulaire **entreprise.view** en ayant au préalable redémarré l'application via **classes.main** |
<member max="11" name="idVille" required="0" type="int" caption="Ville"/> | <member max="11" name="idVille" required="0" type="int" caption="Ville"/> |
<member max="200" name="mail" required="0" type="mail" caption="Mail"/> | <member max="200" name="mail" required="0" type="mail" caption="Mail"/> |
<member max="20" name="tel2" required="0" type="" caption="Tél." transform="tel"/> | <member max="20" name="tel" required="0" type="tel2" caption="Tél." transform="tel"/> |
</class> | </class> |
</sxh> | </sxh> |
<mappings> | <mappings> |
<mapping requestURL="index.do" responseURL="/WEB-INF/index.jsp"/> | <mapping requestURL="index.do" responseURL="/WEB-INF/index.jsp"/> |
<mapping requestURL="entreprises.do" responseURL="WEB-INF/entreprise.list"/> | <mapping requestURL="entreprises.do" responseURL="/WEB-INF/entreprise.list"/> |
<mapping requestURL="villes.do" responseURL="WEB-INF/ville.list"/> | <mapping requestURL="villes.do" responseURL="/WEB-INF/ville.list"/> |
</mappings> | </mappings> |
</sxh> | </sxh> |
* dossier **list** pour les listes | * dossier **list** pour les listes |
* Créer un template pour la classe **KEntreprise** à partir du menu **KObject/Kobject Templates** | * Créer un template pour la classe **KEntreprise** à partir du menu **KObject/Kobject Templates** |
| * Insérer les éléments suivants en double-cliquant dans la barre d'outils |
| |
| {{:j2ee:td5:templatetools.png?|}} |
| |
| <sxh tpl;title:WEB-INF/list/entreprise.list> |
| {#func:this.setEditable(false)#} |
| {#set:this.ajaxIncludes=true#} |
| {#set:this.isShowCaption=true#} |
| {#set:this.listContentUrl="entreprises.do"#} |
| {#mask:<td>{rs}</td><td>{adresse}</td><td>{ville}</td>#} |
| {#mask:<td>{rs}</td><td>{adresse}</td><td>{ville}</td>#} |
| {_ajx} |
| {_listContent} |
| {_filtre} |
| {_page} |
| <div class="boxButtons">{_pageCounter}{_navBarre}</div> |
| {/_listContent} |
| </sxh> |
| |
{{:j2ee:td5:listtemplateentreprises.png?|}} | {{:j2ee:td5:listtemplateentreprises.png?|}} |
| |
| * Modifier le mapping correspondant aux entreprises dans **mox.xml** |
| |
| * Créer le template pour la liste des villes : |
| <sxh tpl;title:WEB-INF/list/ville.list> |
| {#func:this.setEditable(true)#} |
| {#mask:<td>{cp}</td><td>{ville}</td>#} |
| {#mask:<td>{cp}</td><td>{ville}</td>#} |
| {#set:this.ajaxIncludes=true#} |
| {#set:this.listContentUrl="villes.do"#} |
| {_ajx} |
| {_listContent} |
| {_page} |
| <div class="boxButtons">{_pageCounter}{_navBarre}</div> |
| {/_listContent} |
| </sxh> |
| |
| <html><div class="info">La répétition du masque (il est présent en 2 exemplaires) permet d'alterner la présentation entre les lignes, ce que saurait très bien faire le css dans le cas présent,<br>mais dans des cas plus complexes, il sera possible de créer une alternance sur 3 ou 4 positions, ou de définir la présentation de chaque ligne.</div></html> |
| |
| {{:j2ee:td5:listtemplatevilles.png?|}} |
| |
| |
| suite [[javaee:td6|TD n°6 : Conception de logique applicative]] |