Интересен въпрос, ако не го бяхте тествали, щях да заложа малко пари на факта, че не работи ;-)
CDI се основава на управлявани компоненти (JSR 316). Съответното определение е доста облекчено (нарочно):
От спецификацията:
Управляван Bean може да бъде деклариран чрез анотиране на неговия клас с анотацията javax.annotation.ManagedBean. Управляваният Bean не трябва да бъде: финален клас, абстрактен клас, нестатичен вътрешен клас. Управляваният Bean може да не може да бъде сериализиран, за разлика от обикновен JavaBean компонент.
В основния компонентен модел, Managed Beans трябва да предостави конструктор без аргументи, но спецификация, която се основава на Managed Beans, като CDI (JSR-299), може да облекчи това изискване и да позволи на Managed Beans да предостави на конструкторите по-сложни сигнатури,
Това, което вероятно се случва, е, че контейнерът сканира класовата пътека и се случва да намери компилираните JSP сървлети. Мина известно време, откакто видях такъв за последен път, но си спомням, че кодът се генерира и всичко (включително скриптлетите) попада в doGet()
или doPost()
...!? Така че, въпреки че те формално не дисквалифицират по отношение на определението, аз се съмнявам, че JSP скриптът е нещо, което искате да считате за управляван bean. Чувствам се ужасно грешно, честно ;-)
Следя пощенските списъци на CDI / Weld / Seam от доста време и не си спомням JSP да е споменаван някога. Същото е и с търсенето в Google на тази връзка.
Като следствие не трябва да разчитате на CDI, работещ със скриптове. IMHO това поведение има повече страничен ефект, отколкото нещо умишлено и може да бъде премахнато в бъдещи издания без предупреждение (или дори без да бъде забелязано :-)
И така, +1 за предложението на JB Nizet: Използвайте сервлети с CDI, но не и JSP.
АКТУАЛИЗАЦИЯ: Опитах се да помогна, а не да създавам объркване ;-) Мисълта ми е: IMHO ми се струва наистина грешно да се използва CDI в JSP, но не намерих нищо в съответните спецификации, което да доказва това . Всичко, което мога да кажа е, че JSP никога не се споменават никъде - което донякъде подкрепя интуицията ми (и отговаря на наблюдението, че някои реализации го вземат предвид, други не).
person
jan groth
schedule
12.09.2011