Мы используем jspx в качестве механизма шаблонов. У нас есть дюжина экранов с сотнями выражений el, таких как ${user.firstName} или "$ {mail.subject}"
И все это HTML-код не экранируется по умолчанию. Если бы было что-то с < или "в полевом экране не удастся. Мы всегда можем использовать fn: escapeXml, но делать это во всех местах очень скучно.
1) Есть ли способ сделать эвакуацию по умолчанию?
Единственный способ, которым я знаю, - взломать JSP-компилятор (например, jasper для tomcat). Но это не путь.
2) Почему кому-то может понадобиться неограниченный HTML в el? Хранение HTML вне шаблона (например, в базе данных) не является хорошей практикой.
3) Я уверен, что механизм шаблонов должен обрабатывать его автоматически (как это делается в XSLT), почему он должен заботиться об этом? Ручное экранирование (fn: escapeXml) пахнет экранированием SQL-кода (которое используется вместо JDBC setParam): шаблонный код и хорошее место для sql-injection (межсайтовый скриптинг в нашем случае).