Home > Програмиране, Софтуер > Struts2 annotations: redirect action

Struts2 annotations: redirect action

March 29th, 2009 Leave a comment Go to comments

Доста време избирах най-подходящия 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.

  1. No comments yet.
  1. No trackbacks yet.