Pregunta

He pasado por otro cargo de representación de la vista usando Spring3.2.5 y Tiles3

en mi contexto-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>

en mis azulejos-servlet.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> 

en persona_tilis.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>

Se lanza por debajo del error javax.servlet.servletexception: no se pudo resolver la vista con el nombre 'new_person' en el servlet con el nombre 'proyecto'

Por favor ayúdame a resolver el problema.

¿Fue útil?

Solución

problema relacionado discutiendo este "comportamiento" es spr-11491 y es específico de los azulejosv3.

Viene de SpringWildCardservletTilesApplicationContext.TetResources (String) -> URLAPPlicationResource (String, URL) Constructor -> Constructor SuperFixedApplicationReSource (String LocoPath).Cuando hay un subrobrado en los nombres de archivos de definición, la cadena después de que el último subrayado se identifica como la configuración regional.

el Sección de azulejos de la documentación de referencia Spring 4.0.3 se ha actualizado para hacer que este comportamiento sea más explícito, y existe una discusión continua con el equipo de desarrollo de azulejos para que esto se solucione marcando la configuración regional contra locale.getisolanguagecodés ()con el fin de obtener un comportamiento predeterminado menos sorprendente.

Otros consejos

Después de una gran cantidad de excavación, encontré que los azulejos no están cargando los recursos correctamente.

Aquí no estoy seguro de si es un error (Spring 3.2.5 y Tiles 3.0.1) o no:

pero resolví este problema siguiendo

aquí en mi tiles-servlet.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>

Aquí, cuando tenemos el valor de definiciones como se separan con subrayado (EX: Person_tilis o Base_tilis) no está cargando el recurso. Sin embargo, Tiles.xml las definiciones de azulejos son accesibles.

Pero lo intenté con azulejos 2.2 & Spring 3.2.5 funciona correctamente.A pesar de que nos damos como persona_tilis o base_tilis.xml.

en tiles-servlet.xml

Cambie el Base_tilis & Person_tilis a Basetiles & Persontiles, y cambió los nombres de archivos en consecuencia.

o

Cambie el Base_tilis & Person_tiles a Base & Person, y cambió los nombres de archivos en consecuencia.

Espero que alguien pueda encontrarlo como útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top