struts 2 tuiles NoSuchDefinitionException
Je reçois cette exception lors de l'utilisation de struts 2 avec des tuiles
org.apache.les tuiles.définition.NoSuchDefinitionException: /index.jsp
//tiles.xml
<tiles-definitions>
<definition name="baseLayout" template="/index.jsp">
<put-attribute name="title" value="/Template" />
<put-attribute name="header" value="/Header.jsp" />
<put-attribute name="menu" value="/Menu.jsp" />
<put-attribute name="body" value="/body.jsp" />
<put-attribute name="footer" value="/Footer.jsp" />
</definition>
<tiles-definitions>
//index.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<tiles:insertAttribute name="header"/>
<tiles:insertAttribute name="footer"/>
</body>
</html>
//web.xml
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.
DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
//struts.xml
<package name="default" namespace="/test" extends="struts-default">
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="login" class="com.medics.action.LoginAction">
<result name="SUCCESS" type="tiles">/index.jsp</result>
</action>
</package>
J'ai beaucoup cherché, mais rien trouvé
Vous devez vous connecter pour publier un commentaire.
Signifie qu'il n'y a pas de carrelage définition, c'est l'absence de définition du nom "/index.jsp"
Lors de l'utilisation de lattes et tuiles... Votre demande arrive dans struts puis à carreaux où tuiles compose la vue, de sorte que vous ne devriez pas avoir de tuiles définitions appelé "quoi que ce soit.jsp".
Donc il suffit de remplacer
avec
Maintenant que c'est résolu... je voudrais renommer index.jsp, modèle.jsp (je pense que c'est moins à confusion), pourquoi avez-vous un attribut appelé "Modèle" ?
Maintenant pour corriger le problème, je vous recommandons de modifier le struts2 résultat cible de "baseLayout" mais ce n'est probablement pas ce que tu veux dire, alors vous voudrez probablement utiliser votre baseLayout définition de nouvelles pages pour ajouter une nouvelle définition:
Maintenant ci-dessus prendra de la valeur dans defaultTemplate et ajouter (ou si le nom est le même, remplacer ce qui a été dans le modèle de base de la création d'une page d'index.jsp, et maintenant votre struts.xml doit avoir
J'ai rencontré ce problème aujourd'hui.
Bien que c'était une question il y a longtemps, j'ai trouvé la solution comme ci-dessous:
Seulement de remplacer le type
tiles
avecdispatcher
fonctionne pour moi.dispatcher
est le type par défaut pour le résultat, donc il n'est pas nécessaire de définir explicitement.<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" default="true"/>
. Désolé pour les induire en erreur.