2011-09-05 22 views
15

necesito especificar constante de cadena como valor del atributo:cómo hacer referencia constante en el atributo en la primavera

<int:header name="importedFilename" /> 

aquí "importedFilename" no debe ser hardcoded pero tomado de F. E. desde Constants.IMPORTED_FILENAME_HEADER campo estático. ¿Hay una manera de hacerlo? "int" es el espacio de nombres de integración de Spring por cierto. También parece que no hay una definición apropiada de bean para reemplazar int:header con - así que no puedo usar <bean class="Header">....

Respuesta

22
<util:constant id="importedFilenameHeader" 
    static-field="your.package.Constants.IMPORTED_FILENAME_HEADER"/> 

A continuación, debería ser capaz de hacer referencia a este por su id (importedFilenameHeader) para ser utilizado en su elemento <int:header> así:

<int:header name="importedFilename" ref="importedFilenameHeader"/> 

EDIT:

Usted debe ser capaz de hacer esto usando SpEL. Es el lenguaje de expresión de Spring, y está disponible en 3.0 (¿quizás 2.5 también?).

creo que se puede ir haciendo esto a continuación:

<util:constant id="importedFilenameHeader" 
    static-field="your.package.Constants.IMPORTED_FILENAME_HEADER"/> 
<int:header name="#{importedFilenameHeader}" ... /> 

primavera continuación, debe evaluar que este es el valor de la constante importedFilenameHeader que definimos en la parte original (que también se incluye en este ejemplo) .

Aquí hay alguna información de ubicación para obtener el espacio de nombres util:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:util="http://www.springframework.org/schema/util" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/util 
    http://www.springframework.org/schema/util/spring-util-2.5.xsd"> 
+0

Conozco el elemento 'util: constant'. Al usarlo, la pregunta es: ¿cómo hacer referencia a ella en el atributo para que se interprete como id/ref to bean, no la cadena en sí? Simple 'name =" importedFilenameHeader "' y 'name =" # importedFilenameHeader "' no funcionan. – yozh

+0

He actualizado mi respuesta para mostrar cómo puede hacer referencia a la constante para su encabezado denominado 'importedFilename'. –

+0

Este es el punto: necesito poder configurar el nombre del encabezado desde el campo estático, no el valor. – yozh

Cuestiones relacionadas