Struts2 annotations: redirect action
Доста време избирах най-подходящия framework за един от проектите и накрая се спрях на Struts 2. Наследник на Struts 1 и WebWork 2, достатъчно гъвкав за целите, достатъчно customizable, лесен за употреба и не много тежък.
Преди време, познатият WebWork работеше с xml action mapping-и и естествено Strut2 също го позволява. Интересното в Struts2 са анотациите. С тях можем да избегнем писането на xml мапинги и напрактика всичко вече е в java class файла. Да, определено анотациите не са чак толкова гъвкави на пръв поглед, а и явно се ползват от скоро от масовия потребител, защото намерените резултати в търсенето mappings vs. annotations са доста големи. Например Пренасочването на action към друг action. С анотации би изглеждало страхотно, но как се прави…
1 | @Result(name = "success", value = "indexShow", type=ServletActionRedirectResult.class) |
Един ред, хора! Красота. :)
В случая indexShow е името на action-а, към който искаме да насочим текущия action. Забеязва се, че няма extension. Това е страхотно, защото позволява този код да работи без да се променя когато action extension mapping-ът се промени. Помните ли разширенията на action-ите в Struts 1 и WebWork – *.do. В WebWork 2 и Struts 2 вече са *.action. Честно казано в текущия проект пак съм ги мапнал към *.do – някак си… По-добре ми изглежда.
Отклоних се, връщам се по темата. Action-ът indexShow (IndexShow.java; indexShow.do) се намира в главния action packet, а този redirect result се намира в друг пакет. Яко, нали :) Не е нужно да се описва мястото на action-а! Важи и обратното – дори и action-ът да се намира някъде навътре в action дървото, то няма смисъл да се описва целия път до него.
Ето малко повече за @Result анотацията: struts docs.
Последни коментари