|
|
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
Коллеги, У меня какая то не понятка с наследованием bean'ов. Непонятка такого характера, что если я делаю наследования в bean'е именно от какой либо коллекции например HashMap у меня bean ничего не возвращает во view. Проиллюстрирую сию проблему в коде следующем образом: Controller: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. View: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Bean: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Ну так вот если я в Bean делаю "extends HashMap<String, String>" на браузер возвращается только: " MyBean: " Если же я убираю это наследование или делаю наследование не от коллекции, а от чего нить друго то возвращается все ок, а именно: " MyBean: justText " Объясните мне плиз, что я делаю не так. Или научите правильно гуглить. А то уже второй день ни на гуглить не могу нефига внятного почему так получается, не реализовать в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2013, 22:26:25 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
Похоже, из-за того, что бин - это Map, берется не свойство, а значение по ключу: myBean.get("fieldMyBean"). Для проверки можно в наследнике от HashMap сделать put("fieldMyBean", "anotherText") и посмотреть что скажет JSP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 00:05:28 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakПохоже, из-за того, что бин - это Map, берется не свойство, а значение по ключу: myBean.get("fieldMyBean"). Для проверки можно в наследнике от HashMap сделать put("fieldMyBean", "anotherText") и посмотреть что скажет JSP. Вы были правы. JSP говорит вот так: " MyBean: justAnotherText " На следующий код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Прикольное поведение :) А нельзя ли как то объяснить Spring'у что это не ключ все таки, а бин пусть даже и в наследниках у него HashMap? А то что то не хочется колхоз какой то городить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 00:54:32 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
Вы уже поступаете неправильно, когда наследуетесь от MAP. Вам надо просто создать класс обертку у которой будет два свойства, мапа и ваша строка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 02:05:50 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
Это не Spring, а JSP. Точнее, Expression Language, используемый в JSP. Вычислять выражение bean.prop как свойство prop объекта bean -- это частный случай одного из ELResolver. Никогда не задумывался в какой последовательности эти резолверы выполняются. Наверное, потомоу, что не сталкивался. А не сталкивался, потому что так делать не принято. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 08:03:32 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
А вот, кстати, и объяснение. Expression Language Specification Version 2.1 BeanELResolver ... Because this resolver handles base objects of any type, it should be placed near the end of a composite resolver. Otherwise, it will claim to have resolved a property before any resolvers that come after it get a chance to test if they can do so as well Все логично. Если первым поставить определение выражения как свойства бина, лишимся других способов. Так что послушайте товарища забыл ник . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 08:09:19 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
забыл никВы уже поступаете неправильно, когда наследуетесь от MAP. Вам надо просто создать класс обертку у которой будет два свойства, мапа и ваша строка. Всю жизнь так делал, класс обёртку, но тут пришла идеи с оптимизировать часть бинов, а оно вон оно как получилось Не красивенько как то :( bean длиннее получился по коду :) да и в JSP дополнительные приседания надо будет сделать :( Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Alexander A. SakЭто не Spring, а JSP. Точнее, Expression Language, используемый в JSP. Вычислять выражение bean.prop как свойство prop объекта bean -- это частный случай одного из ELResolver. Никогда не задумывался в какой последовательности эти резолверы выполняются. Наверное, потомоу, что не сталкивался. А не сталкивался, потому что так делать не принято. Спасибо большое вы очень мне помогли. Перечитаю еще разок, подзабыл я что то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 09:28:55 |
|
||
|
Spring MVC + Inheritance + Collections
|
|||
|---|---|---|---|
|
#18+
TepKuH но тут пришла идеи с оптимизировать часть бинов Странные у вас представления об оптимизации. Убрать сеттер и геттер, которые можно нагенерировать и ввести непонятное наследование от хэшмапа. Наследование в принципе должно использоваться в редчайших случаях, когда между классами есть отношение is-a, ваш бин это не мапа, так что идея просто кошмарная, никогда так не делайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2013, 13:22:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38416236&tid=2128483]: |
0ms |
get settings: |
17ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
40ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
76ms |
get tp. blocked users: |
3ms |
| others: | 308ms |
| total: | 499ms |

| 0 / 0 |
