Я потратил последние несколько часов, чтобы заставить выражение Struts работать так, как я хочу, но мне это не удалось.
Я хочу выполнить выражение OGNL из строки.
Например, у меня есть следующий код:
<s:push value="#row">
alert('<s:property value="id + ' ' + id" />');
</s:push>
Это отлично работает, дважды давая мне идентификатор объекта.
Этот пример
<s:push value="#row">
<s:set name="expr" value="id + ' ' + id"/>
alert('<s:property value="%{#expr}" />');
</s:push>
тоже отлично работает.
Но теперь, если я создам метод в своем действии:
public String getTest() {
return "id + ' ' + id";
}
и в JSP:
<s:set name="expr" value="getTest()"/>
<s:push value="#row">
alert('<s:property value="%{#expr}" />');
</s:push>
Результат:
alert('id + ' ' + id');
который не работает из-за кавычек.
Но почему в моем последнем примере у меня значение String, а не оцениваемое выражение?
Я пробовал много возможностей, читал статьи, учебники, но не нашел подходящего ответа на свою проблему.