2016-04-25 13 views
1

ich mit Spring-Struts2-Tiles2 in meinem Projekt und ich versuche, Wildcard-Notation verwenden hier das Duplikat in meinem SetupTiles2 Wildcard arbeitet nicht

von hier
<definition name="home-template1" template="/WEB-INF/jsp/templates/template1.jsp"> 
    <put-attribute name="banner" value="/WEB-INF/jsp/sitePages/banner.jsp" /> 
    <put-attribute name="header" value="/WEB-INF/jsp/sitePages/header.jsp" /> 
    <put-attribute name="body" value="/WEB-INF/jsp/sitePages/body.jsp" /> 
    <put-attribute name="archive" value="/WEB-INF/jsp/sitePages/archive.jsp" /> 
    <put-attribute name="footer" value="/WEB-INF/jsp/sitePages/footer.jsp" /> 
</definition> 
<definition name="home-template2" template="/WEB-INF/jsp/templates/template2.jsp"> 
    <put-attribute name="banner" value="/WEB-INF/jsp/sitePages/banner.jsp" /> 
    <put-attribute name="header" value="/WEB-INF/jsp/sitePages/header.jsp" /> 
    <put-attribute name="body" value="/WEB-INF/jsp/sitePages/body.jsp" /> 
    <put-attribute name="archive" value="/WEB-INF/jsp/sitePages/archive.jsp" /> 
    <put-attribute name="footer" value="/WEB-INF/jsp/sitePages/footer.jsp" /> 
</definition> 
<definition name="home-template3" template="/WEB-INF/jsp/templates/template3.jsp"> 
    <put-attribute name="banner" value="/WEB-INF/jsp/sitePages/banner.jsp" /> 
    <put-attribute name="header" value="/WEB-INF/jsp/sitePages/header.jsp" /> 
    <put-attribute name="body" value="/WEB-INF/jsp/sitePages/body.jsp" /> 
    <put-attribute name="archive" value="/WEB-INF/jsp/sitePages/archive.jsp" /> 
    <put-attribute name="footer" value="/WEB-INF/jsp/sitePages/footer.jsp" /> 
</definition> 

zu

entfernen
<definition name="home-*" template="/WEB-INF/jsp/templates/{1}.jsp"> 
    <put-attribute name="banner" value="/WEB-INF/jsp/sitePages/banner.jsp" /> 
    <put-attribute name="header" value="/WEB-INF/jsp/sitePages/header.jsp" /> 
    <put-attribute name="body" value="/WEB-INF/jsp/sitePages/body.jsp" /> 
    <put-attribute name="archive" value="/WEB-INF/jsp/sitePages/archive.jsp" /> 
    <put-attribute name="footer" value="/WEB-INF/jsp/sitePages/footer.jsp" /> 
</definition> 

aber Fliesen gibt mir die folgende Fehlermeldung: org.apache.tiles.definition.NoSuchDefinitionException: home-template2

unten ist mein struts.x ml-Datei mit nur den beiden Aktion verantwortlich snipped dafür

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
"http://struts.apache.org/dtds/struts-2.1.dtd"> 
<struts> 
<constant name="struts.devMode" value="true" /> 
<constant name="struts.enable.SlashesInActionNames" value="true"/> 
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>  
<constant name="struts.action.extension" value=","/> 

<package name="test" extends="struts-default" namespace="/"> 

    <result-types> 
     <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" /> 
    </result-types> 

    <action name="checkBlogUrl" class="checkBlogUrl"> 
     <result name="success" type="redirectAction"> 
      <param name="actionName">postPreview</param> 
      <param name="nextAction">${nextAction}</param> 
      <param name="blogSiteUrl">${blogSiteUrl}</param> 
     </result> 
     <result name="error">/WEB-INF/jsp/cmsPages/index.jsp</result> 
    </action> 

    <action name="postPreview" class="blogPostAction"> 
     <result name="success" type="tiles">${nextAction}</result> 
    </action> 

</package> 
</struts> 

Probe URL-Aufruf Aufruf: myCMS: 8080/CMS/postPreview Nextaction = home-template2 & blogSiteUrl = qsdcza

(Anmerkung: i entfernt die Erweiterung .action/.do von struts)

kann ich auch die Platzhalter in der Erweiterung verwenden? zB:

<definition name="about-*" extends="home-*"> 
    <put-attribute name="body" value="/WEB-INF/jsp/sitePages/about.jsp" /> 
</definition> 

es will mich versuchen, aber die grundlegende Wildcard Arbeit nicht machen kann :(

Vielen Dank für das Lesen und ich schätze Ihre Hilfe

Antwort

0

Tiles has wildcard support in den Versionen 2.1, 2.2..

By default, Tiles 2.2 supports wildcards in definition names. Wildcards help a lot in writing less code to declare your definitions.

Zur besseren Nutzung von Fliesen und Struts2 Tiles 2.2.2 Integration sehen.

Sie Fliesen Definition wie folgt

<definition name="home*" template="/WEB-INF/jsp/templates/{1}.jsp"> 
    <put-attribute name="banner" value="/WEB-INF/jsp/sitePages/banner.jsp" /> 
    <put-attribute name="header" value="/WEB-INF/jsp/sitePages/header.jsp" /> 
    <put-attribute name="body" value="/WEB-INF/jsp/sitePages/body.jsp" /> 
    <put-attribute name="archive" value="/WEB-INF/jsp/sitePages/archive.jsp" /> 
    <put-attribute name="footer" value="/WEB-INF/jsp/sitePages/footer.jsp" /> 
</definition> 
+0

dank verwenden können, fand mein Problem. Momentan benutze ich Kacheln 2.0. Versucht, auf 2.2 zu aktualisieren, aber ich habe eine Menge Probleme mit meinem Pom. –

+0

Sie sind willkommen –