%{control.current + #displayRows}
- в конечном счете, заявление, которое мне нужно выполнить.У меня есть это в теге s: if, и я использую test, чтобы увидеть, находится ли это значение в определенном диапазоне.
В конечном счете, я получаю конкатенацию строк, а не сложение, потому что обе стороны сложения не рассматриваются как числовыетипы по OGNL.Немного повозившись, я вижу, что
%{control.current + control.current}
действительно приводит к числовому сложению, так что действительно значение displayRows, которое было установлено в теге s: set ранее, считается нечисловым значением.Вот мой тег s: set:
<s:set name="displayRows" value="%{#application['app_settings'].settings['MAX ACCESS FIELD TITLES ROWS']}" />
Настройки представляют карту в Java.Принимая во внимание, что ключ всегда является строкой ... ну ... значение не всегда является целым числом, потому что хранятся различные настройки приложения.Поэтому лучшее, что мы можем сделать для типа значения, это Object.И я считаю, что это проблема.OGNL не считает это чем-то, что может быть автоматически преобразовано в числовой тип.
Я ознакомился с руководством по языку на http://incubator.apache.org/ognl/language-guide.html, которое объясняет некоторые из этих концепций, но я не вижу способа сказать OGNL: «Да, этот displayRows, который содержит значение 15, ДЕЙСТВИТЕЛЬНО, являетсяцелое».Есть ли способ, чтобы это произошло?Мне нужно иметь возможность делать дополнения на лету, чтобы я не мог создавать дополнительные атрибуты в Javaland, чтобы помочь мне.Я посмотрел на OGNL, тег s: set и уровень Java, и не вижу подходящего места, где я мог бы это осуществить.