La question est lancée.
Afin de structurer nos petits pas et nos questions récurrentes.
PPDL.
La question est lancée.
Afin de structurer nos petits pas et nos questions récurrentes.
PPDL.
Je me permets de poster sur ce forum pour parler de mon projet
Akrogen http://akrogen.sourceforge.net/fr/index.html, un plugin Eclipse de generation de code, car j'aimerai integrer un catalogue de template struts2.
Avec Akrogen, vous pouvez decrire vos Wizard page Eclipse en XML/XUL.
Je souhaiterais creer un catalogue de template struts2, si vous etes interesses pour m'aider, n'hesitez pas a me contacter.
Merci de votre attention
Angelo
La documentation étant un peu confuse, voici comment utiliser Tiles2 avec
Versions :
- Struts2 (2.0.7)
- Tiles2 (2.0-20070207)
struts.xml
On doit définir le type de résultat associé à un Tiles.
/WEB-INF/web.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="app" extends="struts-default"> <result-types> <!-- Défini le type de résultat qui renvoie vers une définition Tiles --> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> </result-types> <!-- un exemple d action qui renvoie vers la definition tiles1.page --> <action name="tiles1"> <result type="tiles">tiles1.page</result> </action> </package> </struts>
On doit définir en plus de la configuration de base pour une application Struts2
un listener pour les Tiles :
Il faut maintenant créer un fichier tiles.xml dans le répertoire /WEB-INF de la webapp. Ce fichier permet de centraliser les définitions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> ... <listener> <listener-class>org.apache.tiles.listener.TilesListener</listener-class> </listener> ... </web-app>
des assemblages de pages.
/WEB-INF/tiles.xml
Attention, contrairement à ce qui est montré sur le site de Tiles2, l'on doit utiliser les balises <put/> et non <put-attribute/>.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" "http://struts.apache.org/dtds/tiles-config_2_0.dtd"> <tiles-definitions> <definition name="default" template="/WEB-INF/templates/default.jsp"> <put name="title" value="Default template page."/> </definition> <definition name="tiles1.page" extends="default"> <put name="title" value="Page de garde."/> <put name="status">/WEB-INF/atoms/status.jsp</put> <put name="head">/WEB-INF/atoms/head.jsp</put> <put name="menu">/WEB-INF/atoms/menu.jsp</put> <put name="main">/WEB-INF/atoms/main.jsp</put> <put name="foot">/WEB-INF/atoms/foot.jsp</put> </definition> <definition name="login.page" extends="default"> <put name="title" value="Authentification."/> <put name="status">/WEB-INF/atoms/status.jsp</put> <put name="head">/WEB-INF/atoms/head.jsp</put> <put name="menu">/WEB-INF/atoms/menu.jsp</put> <put name="main">/WEB-INF/atoms/login.jsp</put> <put name="foot">/WEB-INF/atoms/foot.jsp</put> </definition> </tiles-definitions>
Ce fichier déclare 3 définitions:
- default sur la base de la JSP /WEB-INF/templates/default.jsp.
- tiles1.page qui spécifie les fragments à assembler selon la définition default.
- login.page qui spécifie les fragments à assembler selon la définition default.
A vous la liberté de définir vos assemblages. Je vous conseille de faire un tour sur le site des Tiles pour voir toute a souplesse de Tiles2.
La page de garde /WEB-INF/templates/default.jsp ressemble à ceci :
Les fragments de pages associés aux attributs dans le fichier tiles.xml sont alors assemblés selon le template.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <%@ taglib prefix="s" uri="/struts-tags" %><%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title><tiles:insertAttribute name="title"/></title> <s:url id="cssApp" value="/css/app.css"/> <link rel="stylesheet" type="text/css" href="${cssApp}"> <s:head theme="ajax"/> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> <tiles:insertAttribute name="status"/> <tiles:insertAttribute name="head"/> <tiles:insertAttribute name="menu"/> <tiles:insertAttribute name="main"/> <tiles:insertAttribute name="foot"/> </body> </html>
Il est important d'ajouter les taglibs Struts2 et Tiles2 à tous les fragments !! comme ceci :
Voilà.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <%@ taglib prefix="s" uri="/struts-tags" %><%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %><div class="head"> APP </div>
Si ces informations ne sont pas assez claire, veuillez apporter vos critiques SVP.
Merci.
PPDL.
Bonjour,
sur le forum de struts, il y a une personne qui a redigé un article concernant Struts 2 and AJAX tables.
Angelo
Tout d'abord il faut télécharger Maven2, rajouter le repertoire bin à votre PATH puis ouvrir une ligne de commande et y taper :
Puis en tapant les lignes de commandes suivante vous démarer l'application sur le port 8888
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 mvn archetype:create -DgroupId=com.test.struts2 -DartifactId=Struts2Test -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter -DarchetypeVersion=2.0.9-SNAPSHOT -DremoteRepositories=http://people.apache.org/maven-snapshot-repository
Il n'y a plus qu'à aller jeter un oeil sur notre Hello World à l'adresse: http://localhost:8888/Struts2Test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2cd Struts2Test mvn -Djetty.port=8888 jetty:run
Et le tour est joué !!
Vous pourrez jeter un oeil sur le code de cette application, vous y trouverez entre autre l'utilisation de sitemesh qui est un framework de gestion de layout. Loïc Mathieu a réaliser une introduction sur le sujet sur developper.com pour ceux qui veulent en savoir plus.
Bonjour à tous.
J'ai récemment releasé un plugin eclipse pour Struts2 sur sourceforge:
http://mvcwebproject.sourceforge.net/
Le plugin est plus générique et ne se limite théoriquement pas à Struts2: l'idée est de faire un plugin générique pour Struts2, Struts1 et éventuellement d'autres frameworks similaires.
La version 0.1.0 ne fonctionne que sur Eclipse 3.3 (bug sur la 3.2). Elle n'est pas encore complète (loin de là !) mais elle permet déjà de faire des choses intéressantes.
Je pense bientôt releaser une version plus complète (qui devrait permettre de mieux gérer les packages struts2, les actions par défaut, exceptions...).
Le plugin est documenté avec un tutorial assez complet. De même, pour les amateurs, le plugin dispose d'une doc destinée aux développeurs qui veulent l'améliorer...
Si vous avez l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 10:38:20,618 INFO [STDOUT] 19-06-2008 10:38:20:618 640308 ERROR org.apache.tiles.jsp.taglib.RoleSecurityTagSupport - Error executing tag: Attribute 'xxxx' not found. org.apache.tiles.TilesException: Attribute 'xxxx' not found. at org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:112) at org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171) at org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75) at org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80) at org.apache.jsp.WEB_002dINF.pages.templates.default_jsp._jspx_meth_tiles_005finsertAttribute_005f0(default_jsp.java:180) at org.apache.jsp.WEB_002dINF.pages.templates.default_jsp._jspService(default_jsp.java:109) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
Utiliser alors <put-attribute/> et non <put> !!!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager