2009-06-03 14 views
6

W przypadku względnie prostej aplikacji można zastosować przepływ Webflow, aby ograniczyć potrzebę tworzenia kontrolerów formularzy? Cóż, z pewnością może, ale myślę, że o to pytam: czy mogę i powinienem napisać całą aplikację za pomocą Webflow dla wszystkich kontrolerów/logiki widoku, jeśli moim celem jest zmniejszenie ilości kodu, który piszę ?Czy Spring Webflow eliminuje potrzebę stosowania klas kontrolerów?

Przechodzę przez (słabą) dokumentację Webflow i zastanawiam się, czy to jest tego warte, czy powinienem trzymać się zwykłego MVC.

Odpowiedz

6

Przypadkiem użycia dla funkcji Web Flow jest rozwiązanie problemu związanego z logiką kontrolera, która obejmuje nawigację wielostronicową (przepływ strony lub kreator). Jeśli nie musisz mieć formularza podzielonego na wiele stron (lub potrzebujesz kilku małych formularzy do udziału w pojedynczej transakcji), prawdopodobnie nie potrzebujesz przepływu strony.

Jednak większość aplikacji tego wymaga. Coś więcej niż prosty CRUD oznacza korzyść.

Przepływy stron zapewniają naturalny bufor danych i mogą rozwiązywać problemy związane z korzystaniem z przycisków nawigacji wstecz i wieloma ramkami/kartami.

Jeśli myślisz o tym, jak przechowywać dane, które muszą żyć dłużej niż pojedyncze żądanie (często błędnym widokiem jest przechowywanie w HttpSession), to na pewno otrzymasz coś z Web Flow. Jeśli nie robisz czegoś takiego i przetwarzasz wszystko w zakresie wymagań, wtedy nie potrzebujesz Web Flow.

Aktualizacja: Web Przepływ może wyeliminować potrzebę wyspecjalizowanych klas kontrolera, aby wykonać następujące ścieżki od strony przejścia/aktualizacji formularzy wzdłuż ustalonej procedury. Jeśli nie musisz tego robić, możesz zaoszczędzić sobie wiele konfiguracji/złożoności, używając tylko MVC.

+0

Ok, ale czy wszystko powinno być częścią przepływu? Powiedzmy, że mam ekran, który wyświetla tylko niektóre rekordy. Użytkownik może kliknąć rekord i zostanie przeniesiony na ekran, na którym może go zaktualizować ... może każdy rekord w widoku ma po prostu link do widoku aktualizacji i przekazuje identyfikator rekordu. Mógłbym napisać kontroler, żeby ustawić ten początkowy widok, albo mógłbym "przepłynąć" z jednym stanem. Nie rozumiem czegoś tutaj ... – Boden

+0

W moim rozumieniu, powinieneś przejść wszystko lub nic z Web Flow. W opisywanym scenariuszu nie potrzebujesz żadnych wyspecjalizowanych kontrolerów. Ale aby odpowiedzieć na twoje pytanie tak, jak było pierwotnie sformułowane, tak, to jest celem Web Flow - aby wyeliminować potrzebę specjalizacji kontrolerów do obsługi interakcji typu workflow. – cwash

3

SpringMVC i Spring WebFlow mogą być używane razem w razie potrzeby - nie ma w tym nic dziwnego.

Jeśli masz przypadek użycia, który jest prosty crud i myślisz, że można go łatwo wdrożyć za pomocą SpringMVC, to jest to właściwy wybór.

Uwaga: Można to osiągnąć również w WebFlow, ani w wersji lepszej, ani najgorszej.

Jeśli masz skomplikowaną logikę kreatora i wymagania dotyczące zarządzania stanem, to WebFlow jest świetny plus masz wiele innych funkcji darmowych, takich jak transakcje i wsparcie trwałości (wersja 2).