2011-08-19 9 views
5

Estoy utilizando fichas Apache para plantillas y parte de la plantilla es un texto de encabezado. Este texto depende de la sección a la que pertenece la página. Cada página contiene un bean y el texto del encabezado se construye usando las propiedades de ese bean. El bean tendrá un nombre diferente para cada página. Por lo tanto, en mi archivo JSP Me gustaría tener algo como esto:Expresiones EL en la definición de mosaico Apache no se procesa

<div>${myBean.id} - ${myBean.name}</div> 

quiero conseguir esa expresión en la definición de baldosas y yo intentado esto:

<definition template="/WEB-INF/tiles/layout/mytemplate.jsp"> 
    <put-attribute name="title" expression="${myBean.id} - ${myBean.name}" /> 
</definition> 

Y en la plantilla que hago:

<div class="title-header"><tiles:insertAttribute name="title" /></div> 

Pero el resultado es la expresión no procesado eL:

<div>${myBean.id} - ${myBean.name}</div> 

El código se ha simplificado aquí para mantener esta publicación conciso, pero esto es exactamente lo que intento hacer. También hay razones por las cuales estoy tratando de hacerlo de esta manera.

¿Alguna idea de por qué la expresión EL no se está procesando?

Gracias

NOTA: Soy bastante nuevo a JSP y Apache Tiles por lo que no puede haber utilizado la terminología correcta.

+0

¿Estoy haciendo una pregunta estúpida o simplemente no hay nadie que pueda ayudarme? –

+2

Se ve bien, ¿puedes publicar tu configuración de mosaicos, por favor? ¿Has intentado evaluar el $ {myBean.id} directamente en el JSP para verificar que esté allí? Eche un vistazo aquí: http://tiles.apache.org/2.1/framework/tutorial/advanced/el-support.html, ¿tiene tiles-el.jar en su classpath? Para habilitar la compatibilidad con EL, debe establecer el parámetro org.apache.tiles.evaluator.AttributeEvaluator, –

Respuesta

6

Solo quería señalar que la respuesta de Barry (en su comentario sobre la publicación original) me ayudó. Necesita tener tiles-el.jar en su classpath (si desea utilizar el EL estándar, presumiblemente necesita los JAR correspondientes para MVEL u OGNL).

Azulejos 2. En cuanto aAttributeEvaluator, aquí está cómo se puede poner esto en marcha si está usando primavera:

<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/tiles/**/views.xml</value> 
     </list> 
    </property> 

    <!-- Initialize expression language support for use in Tiles definitions. --> 
    <property name="tilesProperties"> 
     <props> 
      <prop key="org.apache.tiles.evaluator.AttributeEvaluator">org.apache.tiles.evaluator.el.ELAttributeEvaluator</prop> 
     </props> 
    </property>   
</bean> 

Azulejos 3. de TilesConfigurer de Azulejos 3 Primavera comprueba automáticamente la ruta de clase para el JSP API 2.1 y Tiles EL JARs. Si los encuentra a ambos, crea automáticamente un evaluador de atributos con conciencia de EL.

Cuestiones relacionadas