[JAVA/JSP] MVC voorbeeld?

Pagina: 1
Acties:
  • 200 views sinds 30-01-2008
  • Reageer

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Wie heeft er een linkje naar een duidelijke beschrijving van een goed MVC model? (ModelViewController als ik me nie vergis). En dan eentje die gebruik maakt van JSP en JavaBeans.

Ik heb nu zelf iets gebouwd, wat best wel aardig werkt, maar ik wil graag wat vergelijkinsmateriaal. Mijn model is namelijk op sommige punten niet flexibel genoeg. Standaard entiteiten onderhouden is geen probleem (Klanten, Artikelen) maar zo gauw er lookups bij komen kijken(Orders) is het nog wat gepruts.

Ik heb mijn model ontwikkeld met als doel zo veel mogelijk presentatie en model onafhankelijkheid. De JSP pagina's zijn dan ook niet meer dan wat navigatie elementen, html formpjes en foutweergave. Waar ik in zoek in een referentie model is dan ook hoe ze dat opgelost hebben.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Dit is gewoon een voor mvc (dus zonder jsp ed), maar ik neem aan dat je dat beheerst? (Je moet ff opzoek gaan naar mijn reply).

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Nee, dat beheers ik niet :)

Ik heb wel wat ervaring met Java, maar nog nooit in zo'n groot project als ik nu bezig ben. Ik heb nog nooit het voorrecht gehad :) om echt serieus in de materie te duiken.

Ik moet zeggen dat het voorbeeld zoals jij um geeft er goed uitziet, handelbaar, controleerbaar. Maar jammer genoeg zitten er aan jsp pagina's een aantal nadelen die jouw voorbeeld onwerkbaar maken. Althans, zoals ik er nu naar kijk. Ik zal het nog even wat beter bestuderen :)

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Na wat beter bestuderen zie ik dat het wel raakvlakken heeft met mijn werk tot nu toe.

Ik denk dat het voornaamste probleem wat mijn model in zich heeft is een niet expliciete scheiding tussen View en Controller. Elke jsp pagina in mijn model is een view en tegelijkertijd de request handler voor acties op de view. Alle bewerkingen op data zijn netjes in BEans ondergebracht, maar de applicatie flow is in jsp's gedefinieerd.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Als je serieus iets met oo talen wilt gaan doen, dan raad ik je deze bijbel aan:
het GoF boek
Er staat verder niets in uitgelegd over mvc, maar het zijn onmisbare oo constructies.

En verder heb ik deze ook op de plank staan:
Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
In dit boek staat oa het mvc pattern in uitgelegd.

Het zijn beide boeken waardoor je oo kunsten op een volledig nieuw nivo komen te staan.

  • tijn
  • Registratie: Februari 2000
  • Laatst online: 31-07 00:06
Wellicht kun je eens een blik werpen op de JPetStore. Dit is een compleet herschreven implementatie van de SUN Petshop blueprint applicatie, waarin gebruik wordt gemaakt van MVC (via het Struts framework).
Op de site is een pdf whitepaper te downloaden waarin MVC ook nog even mooi wordt uitgelegd.
O ja, let niet al te veel op het Java vs. .NET gezever ;).

Cuyahoga .NET website framework


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Volgens mij is PetStore een bonte verzameling van J2EE technieken en het is denk ik niet handig om daar een bepaalde pattern uit te leren :)

Het is mij trouwens wel opgevallen dat ze soms bij Sun wel erg anti .NET zijn. Als je het goed wilt doen, moet je eerlijk de feiten naast elkaar zetten, zodat een ander objectief zijn mening daarover kan vormen.

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Ho Ho, dit is mijn thread, geen MS vs TheRestOfTheWorld dicussies aub :)

Ik ga mijn model nog eens tegen de lamp houden. Het probleem is alleen, ik kan niet voor het perfecte OO model gaan. Daar is simpelweg geen tijd. Soms zal ik dingen wat minder net op moeten lossen, simpelweg om tijd te winnen.

Of vloek ik nu in de kerk? :?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
zneek schreef op 05 augustus 2002 @ 23:51:
Of vloek ik nu in de kerk? :?
Niet echt (in mijn kerk dan ;)). Er zijn wel reden te bedenken om bepaalde patterns niet te implementeren. Een belangrijke daarvan is natuurlijk de performance of een deadline die je moet halen (jaja het leven draait om $$$).

Besef wel dat wanneer je je applicatie (later) gaat uitbreiden, en je weet dit al van tevoren, je jezelf 3 keer zal tegenkomen als je nu al direct een quick 'n dirty programma'tje gaat schrijven. Elke programmeur is lui en het is oh zo makkelijk om bv 'ff' een member variabele public te maken, maar dit gaat vroeger of later tegen je keren.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

zneek schreef op 05 augustus 2002 @ 23:51:
Ho Ho, dit is mijn thread, geen MS vs TheRestOfTheWorld dicussies aub :)

Ik ga mijn model nog eens tegen de lamp houden. Het probleem is alleen, ik kan niet voor het perfecte OO model gaan. Daar is simpelweg geen tijd. Soms zal ik dingen wat minder net op moeten lossen, simpelweg om tijd te winnen.

Of vloek ik nu in de kerk? :?
Ik ben wat aan het stoeien met een mvc api, waarin je alleen nog de model hoeft te schrijven op basis van 'basis' model objecten met ingebouwde controller. View objecten hoef je nauwelijks nog te schrijven omdat je maar 1 malig allerlei view objecten hoeft te maken voor die 'basis' model objecten. Een view schrijven stelt eigelijk niets meer voor omdat je alleen hoeft aan te geven welk view objecten aan het model object vastegeplakt moeten worden en met events ed heb je (gelukkig) niets meer te maken, zie: [rml][ java] MVC kan veel generieker[/rml]

Je hoeft dus alleen de persoon class te maken, en de TestPanel. De rest van de code is dus eenmalig. Tevens heb ik meteen alles geregeld met veto listeners, zodat je op een zeer fraaie manier extra controles kan toevoegen.

Ik zal er binnenkort weer eens mee gaan spelen, maar was er even flauw van omdat ik ruzie had met generics en mijn zwaar gecompliceerd collection framework mvc hoopje code ;)

En verder wil ik eerst mijn type systeem afhebben, zodat ik kan beginnen aan het functionele programmeer taatlje voor mijn afstudeerverslag ;)

ps:
zoals je zelf wel aangeeft weet je dat het feit is om 'makkelijk' te doen, omdat dit op lange termijn problemen op gaat leveren. En naarmate je verder gaat met de ontwikkeling van dat systeem zal het lastiger en lastiger gaan worden. Maarja.. als er deadlines zijn, dan houd alles op :(

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Deadlines suck, maar goed.

Ik gooi natuurlijk niet al het OO gebeuren overboord. Het model is toch wel aardig, vind ik zelf, en de Beans zijn tot nu toe aardig consistent. Ik heb tot nu toe slechts 1 zwaar overladen object gemaakt.

Alarmnummer, ik heb je verhaaltje wel gelezen over MVC. Dat is echter niet bruikbaar in een JSP omgeving. Als het al te implementeren is, dan krijg je een veel minder efficiente toepassing, denk ik. In een non-webbased omgeving lijkt het me absoluut "the-way-to-go".

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

misschien heb je hier nog iets aan. En op de sun site staat een hele collectie met design patterns voor j2ee waaronder ook mvc icm jsp geloof ik.

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Alarmnummer schreef op 06 augustus 2002 @ 11:17:
misschien heb je hier nog iets aan. En op de sun site staat een hele collectie met design patterns voor j2ee waaronder ook mvc icm jsp geloof ik.
Kijk, met zulke links kan ik wat.

Zoals ik al zei, in het huidige project kan ik niet alles meenemen. Maar gelukkig staat er nog een project te w88 en daar kan ik wel meer in meenemen :)

Ik kijk er naar uit om een meer inhoudelijke discussie over het onderwerp te voeren. Alarmnummer (en anderen) met meer een non-webbased view op zaken, en ik als voornamelijk webontwikkelaar. Eens kijk of we dat generieke MVC model van Alarmnummer ook geschikt voor webtoepassingen kunnen maken.

  • reddog33hummer
  • Registratie: Oktober 2001
  • Laatst online: 24-08 18:08

reddog33hummer

Dat schept mogelijkheden

MVC Model View Controller dat is normaal heel handig voor grafishe toepassingen omdat je dan snel frames kan redrawen.

Bij jsp is het meestal in en out ....... Ik snap dan ook niet waar je dan bijvoorbeeld een propertychange nodig hebt omdat je de boel toch later gaat viewen....
Je gebruikt dan mvc dan in feite alleen maar om structuur te maken.

Ik denk dat je mvc zit te gebruiken voor iets waar het helemaal niet voor geschikt is

Backup not found (R)etry (A)bort (P)anic<br\>AMD 3400+ 64, 2 GB DDR, 1,5 TB Raid5


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

reddog33hummer schreef op 07 augustus 2002 @ 01:12:
MVC Model View Controller dat is normaal heel handig voor grafishe toepassingen omdat je dan snel frames kan redrawen.
MVC heeft niets te maken met het redrawen van frames hoor. Het is alleen handig om gui up to date met de model te houden in visa versa. Of versta je dat onder het redrawen?

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
reddog33hummer schreef op 07 augustus 2002 @ 01:12:
MVC Model View Controller dat is normaal heel handig voor grafishe toepassingen omdat je dan snel frames kan redrawen.

Bij jsp is het meestal in en out ....... Ik snap dan ook niet waar je dan bijvoorbeeld een propertychange nodig hebt omdat je de boel toch later gaat viewen....
Je gebruikt dan mvc dan in feite alleen maar om structuur te maken.

Ik denk dat je mvc zit te gebruiken voor iets waar het helemaal niet voor geschikt is
mvc is wel degelijk geschikt voor webbased toepassingen (zoals jsp). Het idee is nu juist dat je Model, Control en View los van elkaar trekt. Wat die view precies is maakt niet zoveel uit. Wanneer Alarmnummer het over mvc heeft, kijkt hij daar met een andere bril naar. Zijn ontwerp is echt gericht op een grafische oplossing zoals jij dat noemt. Ik kijk er naar met een webdevelopment bril. Dan blijft het mvc een goed model, alleen zul je iets anders moeten implementeren. Of in ieder geval rekening moeten houden met het feit dat een webbased omgeving meer beperkt is. Dat propertychange is dan idd niet handig om erin te houden.
Pagina: 1