Эта строка
<c:set var="cf" value="${initParam['ConfigFactory']}"/>
делает то же самое, что и
pageContext.setAttribute("cf", application.getInitParameter("ConfigFactory"));
Вы не хотите этого.Избавьтесь от этой линии.В EL у вас есть неявный прямой доступ ко всем атрибутам запроса, сеанса и приложения только по его имени.Следующие
${ConfigFactory}
в основном аналогичны
out.print(pageContext.findAttribute("ConfigFactory"));
PageContext#findAttribute()
тесты соответственно PageContext#getAttribute()
, HttpServletRequest#getAttribute()
, HttpSession#getAttribute()
и, наконец,ServletContext#getAttribute()
до тех пор, пока не будет найдено первое ненулевое значение.Это больше, чем вы хотите.
Наконец, вы можете получить доступ к методу getValue()
для него обычным способом EL:
${ConfigFactory.value}
Не связано с проблемой, но вы обычно присваиваете идентификаторам экземпляров имя, начинающееся со строчной буквы,Вы тоже не делаете ConfigFactory ConfigFactory = new ConfigFactory();
, верно?:)