The following used to print 2 with string 1.0.1. Now it prints 1 (nothing is replaced). <c:set var="replaceme" value="1"/> <str:replace replace="1" with="2"><c:out value="${replaceme}"/></str:replace> If I replace the EL expression with a literal it works. EL expressions also don't work in the replace attribute.
This is working fine in the latest Tomcat (6) with the latest String taglib. That will be because later versions of the JSP spec (2.0+ I believe) take care of the EL execution. This was definitely a problem before 2.0 and not worth the effort to try and fix as it was JSTL implementation dependent iirc.