私はレガシーサイトを引き継いでいます。私のスパイディセンスコードの匂いは、サイト全体で使用されているフォームのパラミングよりも狂っています。オブジェクトのフォームパラメータ
たとえば、新しい連絡先を追加したり、URLに存在するiContactIdに依存して既存の連絡先を編集したりするフォームがあります。したがって、cfmファイルの最上部にあるコードはです。
<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>
だから、基本的に、私たちは空にするために、すべてのフォームフィールドをデフォルトにして、iContactIdがURLである場合は、それらを移入されています。 cfmファイルの下部にあるフォームは、次のような変数を使用します。
<form>
<input name="name" value="#FORM.name#">
さて、私のために、これらの技術の問題は、このページの約30フォームフィールドがあるということですので、私はすべてのフォームフィールドをparrammingています、その後、連絡先に30個のフォームフィールドを設定する場合の値をオブジェクトURL.iContactId変数が存在します。この複製を取り除く方法を考えようとしていますか?おそらくオブジェクトをフォームに直接マッピングすることによってですか?
アイデア?
おかげ
こんにちは、お返事ありがとうございます。ええ、はるかに良い方法のように思えます。しかし、URL.iContactIdが存在しないときにフォームフィールドを特定のものにパラメータ化しなければならない場合はどうなりますか?たとえば、form.userSmokes = 0です。空の連絡先オブジェクトはこの機能を提供しません。 – namtax
2つのこと:1. IDをデフォルトに設定するには、を使用します。 2.すべての既定値が設定された空のオブジェクトを返すようにgetContact()メソッドを設定します。 –
sebduggan
getContact()は指定されたオブジェクトを返しますか?おそらくサブクラス化された連絡先オブジェクトですか? – namtax