|
|
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
в custom tage есть jspFragment (getJspBody()) - отвечает за генерацию тела тега. хочется его сохранить где-нибудь глобально, чтобы вызывать при необходимости. самый простой способ - сохранить его в Map чреват утечками (выглядит так что jspFragment создается в момент запроса). кто-нибудь может подсказать что-нибудь в этом направлении? Скажи микрософту прощай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:07:27 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Какими ещё утечками? Привяжите Map к контексту или самой JSP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:23:23 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
BlazkowiczКакими ещё утечками? Привяжите Map к контексту или самой JSP. к контексту чего? я в теге нахожусь, у меня нет страницы. и вызывать потом фрагмент я хочу в независимости от страницы (например, аяксом получить фрагмент, генерируемый тегом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:25:25 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
BlazkowiczКакими ещё утечками? Привяжите Map к контексту или самой JSP. а утечки понятны, я сослался на страницу, потом обновил jsp - старый код соответственно не удалился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:26:29 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimirк контексту чего? http://docs.oracle.com/javaee/5/api/javax/servlet/ServletConfig.html http://docs.oracle.com/javaee/5/api/javax/servlet/ServletContext.html Penkov Vladimirя в теге нахожусь, у меня нет страницы. и вызывать потом фрагмент я хочу в независимости от страницы (например, аяксом получить фрагмент, генерируемый тегом) Через ThreadLocal туда можно что угодно пропихнуть. Причем во многих фреймверках вроде Spring MVC это реализовано разными утилитами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:29:56 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimirа утечки понятны, я сослался на страницу, потом обновил jsp - старый код соответственно не удалился Нифига не понялю. Зачем "куску" ссылка на страницу. Наоборот ведь нужно. На странице\сервлете получить ссылку на "кусок". В любом случае, если это данные юзера, то через ThreadLocal пропихиваете Request и храните в сессии. Если это данные приложения, то ServletConfig->ServletContext. Можно просто глобальный Map завести и чистить в ServletContextListener. Почему Map это у вас обязательно "утечка", я всё ещё не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:33:25 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimir, Может я не прав, поправьте. Но тело просто оформляется в метод, который можно вызывать несколько раз, зачем его хранить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:49:09 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
в JspFragment самом может храниться ссылка на сгенерированный класс jsp-сервлета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:52:51 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
0FDPenkov Vladimir, Может я не прав, поправьте. Но тело просто оформляется в метод, который можно вызывать несколько раз, зачем его хранить? проблема в том, что этот метод доступен только когда тег вызывается при построении страницы. а я хочу вдобавок уметь строить его вне страницы. пример a.jsp [src] <div id='s1'> <tag:sample id='globalId'>foo=#{foo.value}<tag:sample> </div> [src] теперь чтобы мне получить строку "foo=#{foo.value}", нужно вызвать a.jsp. Я же хочу получить доступ к строке вне всяких jsp. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:55:42 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimirв JspFragment самом может храниться ссылка на сгенерированный класс jsp-сервлета. Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:55:42 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPenkov Vladimirв JspFragment самом может храниться ссылка на сгенерированный класс jsp-сервлета. Зачем? что значит зачем? если ее там нет, то все тип топ. я сохранил фрагмент и начал его дергать. но сам фрагмент отдается мне контейнером, я понятия не имею что в нем и как, и можно ли его хранить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:56:32 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
как вариант, я могу хранить не jspFragment, а кусок текста, получаемый в результате getJspBody().invoke(), и делать ручной парсинг. тоже вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:58:01 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimir, a jsp:include не пойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 11:58:53 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
[quot Penkov Vladimir]проблема в том, что этот метод доступен только когда тег вызывается при построении страницы. а я хочу вдобавок уметь строить его вне страницы. пример a.jsp Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. И из контроллера (сервлета) вызвать: Код: java 1. 2. 3. 4. 5. Я, к примеру, использую подобную реализацию для рассылки почтовых сообщений из контроллера, шаблонами для которых являются jsp-файлы. Хотя согласен с коллегами, что оперировать фрагментами надо в самой jsp. Кстати, нормально настроенный SpringMVC может сам корректно отдавать куски кода с jsp/jstl-синтаксисом, то есть моя реализация понадобиться не должна. Да и идеологически надо между представлением и контроллером надо оперировать моделью, а не частями представления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 12:56:48 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
коллеги, я не внятно объяснил. мне не нужна вся a.jsp. Мне нужнна только та часть, которая внутри тега. цель - я могу в любой момент аяксом обновить часть страницы, заключенной внутри тега (на манер facelets), причем на сервере не будет строиться вся страница, а возьмется только нужный кусок, обработается и вернется мне в виде html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:13:23 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
все запросто решается инклудами - я могу просто вынести обновляемый кусок в отдельную jsp и просто обработать ее. Но я хочу весь код писать в 1ом месте. финально я хочу, чтобы работал следующий код: Код: java 1. 2. 3. 4. 5. 6. при этом rpcUtils.invoke("some method"); обновит значение ${someBean.field}, а utils.reload обновит содержимое tag:reloadablePanel (с сервера вернется обновленный html) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:18:35 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimir, я делал отдельный сервлет ДайМнеКусок, который аяксом вызывал и вставлял уже из JS на клиенте. На любое событие в Осле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:20:54 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
соответственно, фрагмент "Значение поля: ${someBean.field}" нужно где-то хранить. вариантов несколько: 1. хранить ссылку на jspFragment. идеальный вариант, появляется возможность писать в теле тега всякие c:if и пр 2. писать тело фрагмента в виде freemarker шаблона (или любом другом шаблонном языке) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:22:01 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Petro123Penkov Vladimir, я делал отдельный сервлет ДайМнеКусок, который аяксом вызывал и вставлял уже из JS на клиенте. На любое событие в Осле это самый простой вариант, мне он не нужен, так как 1) код разбивается на части 2) помните, я вам обещал грид? вот это часть компонентного движка, с которой будет все прям вообще огонь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:23:06 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimir, согласен. Т.е. если это компонент, то - инкапсуляция - всё барахло внутри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:28:38 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimir, тело выполняется в контексте страницы PageContext, значение тела может зависеть от других тегов выше, а сохранив JspFragment, Вы сохраняете только контекст не существующей уже страницы. Вы вообще пробовали сохранять JspFragment? а потом его выполнять или это только вопросы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:48:07 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
0FDPenkov Vladimir, тело выполняется в контексте страницы PageContext, значение тела может зависеть от других тегов выше, а сохранив JspFragment, Вы сохраняете только контекст не существующей уже страницы. Вы вообще пробовали сохранять JspFragment? а потом его выполнять или это только вопросы? вопросы. я вижу что каждый раз jspFragment создается новый. в моем случае тег не может зависеть от тегов выше (если это так, то сам дурак) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 13:59:34 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
Penkov Vladimirвопросы. я вижу что каждый раз jspFragment создается новый. в моем случае тег не может зависеть от тегов выше (если это так, то сам дурак) Это сейчас в tomcat, а завтра, например, будет всего один jspFragment на всю станицу, и будет такие вызовы jspFragment.setIdFragment(0000); xxx.setJspBody(jspFragment);. читай javadoc: Implementation Note: It is not necessary to generate a separate class for each fragment. One possible implementation is to generate a single helper class for each page that implements JspFragment. Upon construction, a discriminator can be passed to select which fragment that instance will execute. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 14:10:32 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
я потому и спрашиваю, какие есть еще варианты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 14:23:54 |
|
||
|
хранить jspFragment между запросами
|
|||
|---|---|---|---|
|
#18+
http://books.google.ru/books?id=6CeZUH7wOBUC&pg=PA377&lpg=PA377&dq=body-content+tagdependent+get+contents&source=bl&ots=rqwUsIJ5JQ&sig=kkfj_eUnLN4aIYld0w-v2z9xyzM&hl=en&sa=X&ei=Kf93UMOwCez34QSt1IEw&ved=0CBkQ6AEwADgK#v=onepage&q=body-content%20tagdependent%20get%20contents&f=false на стр 385 написано, что нельзя кешировать фрагмент, так как он может быть переиспользован контейнером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 15:36:38 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37995519&tid=2130784]: |
0ms |
get settings: |
17ms |
get forum list: |
27ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
297ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
108ms |
get tp. blocked users: |
3ms |
| others: | 300ms |
| total: | 787ms |

| 0 / 0 |
