Tagi JSP + java script

0

Witam

Mam takie pytanie.
Chcialbym zrobic tag JSP ktory renderowalby cos w html- u i kozystal z javascryptu.
Moj problem to jak zrobic by w trakcie renderowania mojego taga jednoczesnie dodawac kod skryptu do sekcji head czy to w postaci czystego kodu czy linku do osobnego pliku z JS.
Czy ktos spotakal sie z podobnym rozwiazaniem.

Pozdrawiam forumowiczow

0

A dlaczego akurat w sekcji head? Możesz po prostu dać kod js w htmlu wtedy i tak zostanie wywołany.

0

O ile sie orientuje to tag <SCRIPT> mozna dodac bez problemu w body (tzn. nie jest to eleganckie, ale sie da). W 'golym' JSP nie ma chyba innego wyjscia, tylko wyrenderowac kod javascriptowy bezposr. na stronie podczas renderowania tagu. Jezeli tylko Ty bedzies uzywal ten tag, to mozna tez, tak jak radzi kolega rnd, umiescic kod JavaScript (lub referencje do pliku) bezposrednio na stronie JSP, na ktorej bedziesz uzywal tagu. Gdybys np. uzywal JSF, to mialbys mozliwosc operowania na calym drzewie komponentow i dodania tego w tym miejscu, gdzie Ci pasuje. Tak robi np. MyFaces Tomahawk + oferuje specjalny filtr rejestrowany w web.xml, ktory mapuje reqesty do zasobow .js i wyciaga je z wlasnego JARa. Ale to kupa niebanalnej roboty, nie warta zachodu ;)

0

Wymyśliłem coś takiego

Stworze sobie tag nazwie go np <simpleJS> bedzie mi on renderowal na stronie specjalny unikatowy znacznik np #@javaScript zancznik ten bedzie umieszzczany w sekcji head.
To byłaby pierwsza cześć następnie wszystkie znaczniki które by dodawały jakiś tam fragmet kodu js umieszczały by go albo w pageContext->atributes albo reqest->atributes .
Te dane byłyby pobierane przez dołączony do wszystkich żądań filtr który przed oddaniem kodu html do klienta wyszukałby ten unikatowy znacznik i podmieniłby kodem js pobranym z pageContext->atributeslub request->attributes

Co sadzicie o takim rozwiązaniu dopatrujecie sie w nim jakiś dodatkowych problemów

0

Chyba da sie tak zrobic. Jedyne czego nie jestem pewien, to czy po przetworzeniu requestu (bo dopiero wtedy bedziesz mogl zadzialac filtrem) bedziesz mogl manipulowac na strumieniu / writerze w HttpResponse, zeby podmienic fake'owy znacznik...

Wada jest taka, ze uzalezniasz poprawne dzialanie swoich tagow od umieszczenia dodatkowego tagu w head. Przewaga nad rozwiazaniem polegajacym na recznym umieszczeniu referencji do pliku .js jest taka, ze kod JS bedziesz mogl brac bezposrednio z zasobow w swoich JARach (caly kod tagu, serwerowy i kliencki, bedzie w jednym miejscu).

0

Niestety mimo wszelkich starań ta metoda odpada.
Nie mogę sie dobrać do danych umieszczonych w PrintWriter.
Zna może ktoś sposób na dobranie sie do tych danych z poziomu Filtra ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1