Ik heb uiteenlopende meningen over het nut van dynaforms gezien, enerzijds zou het handig zijn om de boel in je xml te specificeren, maar anderzijds heeft dat weer enkele nadelen.
Op het moment heb ik een vrij eenvoudige classboom van forms, die globaal de structuur van de (data)klassen volgt waar de bewerkingen op plaatsvinden. Hierin kan je allerlei werk in superklassen laten uitvoeren en andere controles in utility-methoden. Toch is het niet helemaal ideaal (hoewel zeker niet onwerkbaar).
Ik zie in globaal drie mogelijkheden voor forms in Struts en vraag me nu af welke de beste is:
B. heeft als voordeel dat het gros compile-time gecontroleerd wordt, maar het rotwerk (het valideren) wat vereenvoudigd kan worden (is dat eigenlijk zo?).
C. Zou als voordeel moeten hebben dat je alles in xml definieert en je dus helemaal niks hoeft te programmeren. Eerlijk gezegd heb ik niet het idee dat het dan ook minder (tik)werk is dan een klasse maken, nu moet je alle losse velden specificeren in je xml, anders doe je dat in een java-klasse en gebruik je de code-completion om het gros van je werk te doen. En een ander voordeel dat er zou bestaan is dat je de boel niet hoeft te recompilen als je wat wijzigt... Meestal wijzig ik een form pas als ik een andere klasse wijzig, dus dan moet ik toch compilen en voor een wijziging aan de xml moet de webapp ook herstart worden (sterker nog, dan moet ie eerder herstart worden dan voor een klasse-wijziging).
Verder heeft het als nadeel dat je overal .get("bladiebla") aanroept, wat niet tijdens het het intikken van je code of het compileren gecontroleerd kan worden en meer werk is dan get{evt eerste paar letters}{evt pijltjes}( in je IDE intikken
En je hebt ook weer het probleem dat je de boel op drie plaatsen, ipv slechts twee synchroon moet houden (in je jsp, in je xml en in je code).
Eigenlijk zie ik dus niet zo goed waarom men zo enthousiast over C is. De validatiecode overhevelen naar (kortere) xml-code zie ik wel het nut van in, denk ik, vandaar dat voorlopig mijn voorkeur naar B uitgaat.
Maar mijn vraag is natuurlijk: heb ik het mis? Is C toch beter en zie ik het gewoon niet goed?
Op het moment heb ik een vrij eenvoudige classboom van forms, die globaal de structuur van de (data)klassen volgt waar de bewerkingen op plaatsvinden. Hierin kan je allerlei werk in superklassen laten uitvoeren en andere controles in utility-methoden. Toch is het niet helemaal ideaal (hoewel zeker niet onwerkbaar).
Ik zie in globaal drie mogelijkheden voor forms in Struts en vraag me nu af welke de beste is:
- Doorgaan met wat ik nu heb, gewone ActionForms en daarin gewoon een validate-methode (die o.a. super.validate() aanroept).
- Doorgaan met wat ik nu heb, maar de validate-methoden vervangen door het validator-framework.
- Alles overboord gooien en de boel vervangen door DynaValidatorForms
B. heeft als voordeel dat het gros compile-time gecontroleerd wordt, maar het rotwerk (het valideren) wat vereenvoudigd kan worden (is dat eigenlijk zo?).
C. Zou als voordeel moeten hebben dat je alles in xml definieert en je dus helemaal niks hoeft te programmeren. Eerlijk gezegd heb ik niet het idee dat het dan ook minder (tik)werk is dan een klasse maken, nu moet je alle losse velden specificeren in je xml, anders doe je dat in een java-klasse en gebruik je de code-completion om het gros van je werk te doen. En een ander voordeel dat er zou bestaan is dat je de boel niet hoeft te recompilen als je wat wijzigt... Meestal wijzig ik een form pas als ik een andere klasse wijzig, dus dan moet ik toch compilen en voor een wijziging aan de xml moet de webapp ook herstart worden (sterker nog, dan moet ie eerder herstart worden dan voor een klasse-wijziging).
Verder heeft het als nadeel dat je overal .get("bladiebla") aanroept, wat niet tijdens het het intikken van je code of het compileren gecontroleerd kan worden en meer werk is dan get{evt eerste paar letters}{evt pijltjes}( in je IDE intikken
Eigenlijk zie ik dus niet zo goed waarom men zo enthousiast over C is. De validatiecode overhevelen naar (kortere) xml-code zie ik wel het nut van in, denk ik, vandaar dat voorlopig mijn voorkeur naar B uitgaat.
Maar mijn vraag is natuurlijk: heb ik het mis? Is C toch beter en zie ik het gewoon niet goed?