J'ai repris un site hérité, et mon odeur de code spidey devient fou sur le paramming de formulaire utilisé dans tout le site. Par exemple, nous avons un formulaire qui vous permet d'ajouter un nouveau contact ou d'en modifier un existant en fonction de la présence de l'iContactId dans l'adresse URL. Donc, le code dans la partie supérieure du fichier cfm est.Form param pour les objets
<cfparam name="form.name" default="">
<cfparam name="form.age" default="">
<cfparam name="form.surname" default="">
<--- More cfparams for every form field--->
<cfif isDefined("URL.iContactId")>
<cfset VARIABLES.contact = contactService.getContact("URL.iContactId")/>
<cfset FORM.name = contact.getName() />
<cfset FORM.age= contact.getAge() />
<cfset FORM.surname = contact.getSurname() />
</cfif>
donc essentiellement nous sommes tous Défaillant champs de formulaire à vide, puis les remplir si le iContactId est dans l'URL. Le formulaire dans la partie inférieure du fichier cfm utilise ces variables comme ceci.
<form>
<input name="name" value="#FORM.name#">
Maintenant, pour moi, le problème avec ces techniques, est qu'il ya environ 30 champs de formulaire sur cette page, donc je suis parramming tous les champs de formulaire, puis définir les 30 champs de formulaire pour les objets de contact valeurs si la variable URL.iContactId existe. Je suis en train de penser à un moyen de supprimer cette duplication - peut-être en mappant le formulaire directement à l'objet?
Des idées?
Merci
Salut, merci pour la réponse. Ouais semble être une bien meilleure méthode. Cependant, que faire si je devais param un champ de formulaire à quelque chose de spécifique, quand URL.iContactId n'existe pas. Par exemple, form.userSmokes = 0. En tant qu'objet de contact vide ne fournirait pas cette fonctionnalité. – namtax
Deux choses: 1. J'utiliserais probablement pour l'ID par défaut; et 2. configurez votre méthode getContact() pour renvoyer un objet vide avec tous les paramètres par défaut déjà définis. –
sebduggan
alors getContact() retourne un objet spécifié? peut-être un objet de contact sous-classé? – namtax