Согласно java ee 5 api ExpressionFactory
предоставляет метод #newInstance
.
Ну, javadoc не является доказательством, и, на самом деле, это очень вероятно, ошибка в Java EE 5 javadoc. Два newInstance()
фабричных метода были добавлены в Техническом обзоре 1 JSR-245 (чтобы сделать EL автономным и вывести его из JSP 2.1, взгляните на JSR-245 MR1 Change Log для деталей), но этот обзор никогда не был выпущен .
Поэтому неудивительно, что вы не можете найти этот метод в java-ee связке , доступной в репозитории java.net.
Но этот сосуд не обеспечивает этот метод. Поэтому я получаю ошибки компилятора.
Как и ожидалось. Этот метод не в Java EE 5 (по крайней мере, это мое понимание). Так что вам нужно использовать:
ExpressionFactory factory = new ExpressionFactoryImpl();
Официальный jar Java EE 6.0, предоставленный maven (java.dev.net), содержит этот метод.
Да, потому что это Java EE 6, потому что EL теперь автономен со своей собственной спецификацией (технически EL все еще находится в JSR-245, извините, если это сбивает с толку). Таким образом, Java EE 6 включает в себя EL 2.2 (да, версия перепрыгнула с 1.1 до 2.1.2 , а затем 2.2 для лучшего согласования с версией JSP). И эта версия действительно предоставляет методы newInstance()
для ExpressionFactory
.