Question

J'ai parcouru un autre message de rendu de la vue en utilisant Spring3.2.5 & Tiles3

dans mon contexte-servlet.xml

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  <property name="viewClass">
     <value>
        org.springframework.web.servlet.view.tiles3.TilesView
     </value>
  </property>

dans mes tuiles-servle.xml

<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
     <list>
          <value>/WEB-INF/tiles/common/tiles.xml</value>
          <value>/WEB-INF/tiles/common/base_tiles.xml</value>
              <value>/WEB-INF/tiles/common/person_tiles.xml</value>
      </list>
</property>
</bean> 

dans perseu_tiles.xml

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE tiles-definitions PUBLIC
   "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
   "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>

     <definition name="new_person" extends="base.definition">
        <put-attribute name="body" value="/WEB-INF/xx/xxx/web_person.jsp" />
     </definition>
</tiles-defnitions>

Ça jette ci-dessous une erreur Javax.Servlet.ServleXception: Impossible de résoudre la vue avec nom 'New_Person' dans Servlet avec nom 'Project'

Aidez-moi s'il vous plaît à résoudre le problème.

Était-ce utile?

La solution

problème connexe Traduction de ce "comportement" est SPR-11491 et est spécifique aux carreauxv3.

Il vient de SpringWildCardServlettilesApplicationContext.GetResources (String) -> UrlapplicationResource (string, URL) constructeur -> Super postfixedApplicationResource (string localpath).Lorsqu'il y a un soulignement dans la définition des noms de fichiers, la chaîne après le dernier soulignement est identifiée comme la locale.

Le Section des tuiles de printemps 4.0.3 Documentation de référence a été mise à jour afin de rendre ce comportement plus explicite et qu'il existe une discussion en cours avec une équipe de développement carreaux pour que cela soit fixé en vérifiant les paramètres régionaux contre Locale.Gettisolanguagecodes ()afin d'obtenir un comportement défaillant moins surprenant.

Autres conseils

Après beaucoup de creuser, j'ai trouvé que les tuiles ne chargent pas correctement les ressources.

Ici, je ne suis pas sûr de savoir s'il s'agit d'un bug (printemps 3.2.5 et de tuiles 3.0.1) ou non:

mais j'ai résolu ce problème en suivant

ici dans mon tuiles-servle.xml

<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    <property name="definitions">
      <list>
        <value>/WEB-INF/tiles/common/tiles.xml</value>
        <value>/WEB-INF/tiles/common/baseTiles.xml</value><!-- Change the base_tiles to baseTiles.xml or base.xml -->
        <value>/WEB-INF/tiles/common/personTiles.xml</value><!-- Change the person_tiles.xml to personTiles.xml or person.xml-->
      </list>
   </property>
</bean>

ici lorsque nous avons la valeur des définitions telle que séparée avec un trait de soulignement (ex: person_tiles ou base_tiles), il ne loge pas la ressource.Ce tuiles.xml Les tuiles-définitions sont accessibles.

Mais j'ai essayé avec des carreaux 2.2 et du printemps 3.2.5 Cela fonctionne correctement.Même si nous donnons en tant que personne_tiles ou base_tiles.xml.

dans tuiles-servle.xml

Modifier les basé_tiles et la personne_tiles sur les basatiques et les personnalistes et modifié les noms de fichiers en conséquence.

ou

Modifier la base_tiles & Person_tiles en la base et la personne, puis modifié les noms de fichiers en conséquence.

J'espère que quelqu'un peut le trouver comme utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top