Я недавно активировал trim-directive-whitespaces на своем сайте, редактируя файл web.xml следующим образом:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
Это прекрасно работает, но я обнаружил странное поведение в таких ситуациях:
${myMap['literal']} ${myMap['literal']}
Output:valuevalue
Обратите внимание, что между 2 переменными есть пробел, но этот пробел не печатается, так как это изменение web.xml включено.
Если y установить некоторый текст между этими переменными, вывод будет желаемым:
${myMap['literal']}​ ${myMap['literal']}
Output:value value
Примечание: это '​
' - пустой символ, но это работает с любой буквой или другим символом
Способ получения переменных myMap в моем JSP - через тег, используя jspContetx из
getJspContext().setAttribute(key, map);//Map is an Map<String, Object>
Я не понимаю, почему это удаляется из моего JSP, когда я использовал скриптлет или другие переменные, это работает нормально. Есть идеи по этому поводу?