Вы, вероятно, давно решили эту проблему, но на случай, если кто-то еще столкнется с этим:
Это не компилируется не из-за вложенных кавычек, а из-за вложенных тегов. Вы не можете использовать c: out внутри атрибута тега fmt: message. Однако вы можете заставить его работать, установив временную переменную:
<c:set var="foo"><c:out value="${requestScope.search_url}"/></c:set>
<form id="search" action="<fmt:message key='${foo}'/>">
Кроме того, называть ваш пример «тройными» вложенными цитатами вводит в заблуждение. Символы двойной кавычки, окружающие значение атрибута action вашего тега формы, НЕ ведут себя как кавычки с точки зрения движка jsp. Все, что находится вне выражения $ {...} EL или вне известного jsp тега с известным префиксом, рассматривается как произвольные байты.