Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > struts, требуется изменить функционал


Автор: iluvatar 18.11.2010, 13:54
Как-то никогда не приходилось лезть в исходники библиотек и писать свой код, но вот пришлось.

Есть страница объекта, например "object/%id%".
В зависимости от самого объекта требуется генерить различные формы и, возможно, различные экшены.
Т.е. по-хорошему надо написать фабрику форм на вход которой идет id объекта.
У этих форм будет какой-то общий предок, многие поля будут совпадать, но классы должны быть разными.

struts-mapping не позволяет такого сделать (или все-таки я не доглядел?)

Сейчас я вижу только такой вариант - отредактировать исходники стратса и создать новую struts-либу.
Правильное ли это решение? Не нарушаю ли я этим лицензию? Есть ли другие варианты?

Спасибо за умные ответы.


Автор: iluvatar 29.11.2010, 17:39
Залез в исходники, посмотрел как работает struts и понял, что менять там что-то еще больший геморр - придется же как-то привязать свою фабрику со стратсом, для этого придется вычленять сущности и добавлять возможность добавления своей фабрики в конфиг.

Решил проще - экшен, который обрабатывает адрес "/object/%id%" определяет что это за объект и форвардит на другие экшены "/objectType1/%id%", "/objectType2/%id%", "/objectType3/%id%" и т.д.

Эти экшены в конфиге имеют свои формы, а не базовые.
Немного разрастается сам конфиг, но это прозрачнее.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)