2014-10-14 3 views
1

У меня есть атрибут JSP с именем "форма" набор followinglyУстановка свойства JSP с JSTL вложенным способом?

<c:set value="${fieldAttributeMap[rowId].buildForm}" var="form" /> 

Это работает. Атрибут «form» содержит объект Java, который будет использоваться для дальнейшей оценки и отображения позже в JSP. Тем не менее, я хотел бы использовать его более общим способом, не зная, какое имя формы заблаговременно - его можно назвать, например. «modelForm» вместо «buildForm». Если мы предположим, что я хранится имя переменной в JSP атрибута «FORMNAME»

<c:set value="buildForm" var="formName" /> 

, как я могу использовать это, чтобы установить атрибут JSP «форма», как и в первом примере кода? В основном выражение должно быть оценено в два раза, как в этом воображаемом, неработающий, например:

<c:set value="${fieldAttributeMap[rowId][${formName}]}" var="form" /> 

только обходные пути, которые приходят на ум, либо писать свой собственный тег или с использованием устаревшего Struts боба: определить тег. Но я надеюсь, что есть лучшее решение или обходное решение.

Edit: было высказано предположение, что этот вопрос может быть дубликатом calling another variable using a variable value as parameter in jstl Однако предложенное решение здесь не применяется здесь, как мне нужно заменить имя атрибута как свойство другого объекта Java.

+0

возможно дубликат [вызов другой переменной, используя значение переменной в качестве параметра в JSTL] (http://stackoverflow.com/questions/4132865/calling-another-variable-using-a- variable-value-as-parameter-in-jstl) –

+0

Я прочитал ответ на связанный вопрос и, кажется, содержит возможное решение проблемы. Тем не менее, я упростил вопрос, чтобы сделать его доступным для читателей, поэтому связанный вопрос не отвечает моей реальной проблеме. Я отредактирую вопрос соответствующим образом. – simon

ответ

2

Вам просто нужно ${fieldAttributeMap[rowId][formName]}