![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
iluvatar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
Как-то никогда не приходилось лезть в исходники библиотек и писать свой код, но вот пришлось.
Есть страница объекта, например "object/%id%". В зависимости от самого объекта требуется генерить различные формы и, возможно, различные экшены. Т.е. по-хорошему надо написать фабрику форм на вход которой идет id объекта. У этих форм будет какой-то общий предок, многие поля будут совпадать, но классы должны быть разными. struts-mapping не позволяет такого сделать (или все-таки я не доглядел?) Сейчас я вижу только такой вариант - отредактировать исходники стратса и создать новую struts-либу. Правильное ли это решение? Не нарушаю ли я этим лицензию? Есть ли другие варианты? Спасибо за умные ответы. |
|||
|
||||
iluvatar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
Залез в исходники, посмотрел как работает struts и понял, что менять там что-то еще больший геморр - придется же как-то привязать свою фабрику со стратсом, для этого придется вычленять сущности и добавлять возможность добавления своей фабрики в конфиг.
Решил проще - экшен, который обрабатывает адрес "/object/%id%" определяет что это за объект и форвардит на другие экшены "/objectType1/%id%", "/objectType2/%id%", "/objectType3/%id%" и т.д. Эти экшены в конфиге имеют свои формы, а не базовые. Немного разрастается сам конфиг, но это прозрачнее. Это сообщение отредактировал(а) iluvatar - 29.11.2010, 17:41 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |