2011-10-07 8 views
0

私はstrutsに新しくなっていますので、私と一緒にご負担ください。 注文確認メールのjspにプロモーションメッセージを表示します。私はショッピングカートのフォームのフィールドからこのプロモーションコードを引き出しています。それは、すべてのオーダーラインのメッセージを複製する以外は正常に動作します。特定のプロモーションコードに対して一度だけ印刷するにはどうすればよいですか?Strutsロジック - 電子メールの確認で重複するメッセージを防止したい場合

<logic:iterate id="orderLineItem name="order" property="orderLines" type"=com.corporation.ecom.OrderLine"> 
<logic:notEmpty name="orderLineItem" property="promotionCodes"> 
    <logic:iterate id="promo" name="ordeLineItem" property="promotionCodes"> 
     <logic:equal name="promo" value="ABC"> 
     <p>Message goes here............... 
     </p> 
     </logicEqual> 
     <logic:equal name="promo" value="XYZ"> 
     <p>Message goes here............... 
     </p> 
     </logicEqual> 
    </logic:iterate> 
</logic:notEmpty> 
</logic:iterate> 
+0

どのメッセージが重複していますか?そして、これがサーバー側で行われていれば、はるかに洗練された(テストしやすい)でしょう。 –

+0

フォームフィールドにプロモーションコードABCまたはXYZが入力されるたびに生成される段落タグ間のメッセージを複製します。メッセージはコードごとに異なり、コードは特定のカートアイテムに関連付けられています。今は、注文全体に対して1回ではなく、1行ごとにメッセージを印刷します。 – Scout

+0

これは 'orderLines''' ''の中にありますので、それは私が期待しているものです。 –

答えて

0

これは実際に何をしようとしているかによって異なります。

たとえば、ユーザーがプロモーションコードを入力した場合、広告申込情報のプロモーションコードと一致する必要がありますが、それは間違っています。入力したプロモーションコードを各商品のプロモーションコードと照合し、どこにでも一致するかどうかを確認します。存在する場合は、適切なメッセージを印刷します。

これをJSPで行うことは、PITAです。私はJSPの断片として、またはJSPベースのカスタムタグとしてやっています。理想的には、それははるかにかさばりにくく、テストするのが簡単なサーバー側で行われます。プロモーションメッセージがどこに/どのように格納されているかによっても違いがあります。

+0

広告申込情報と一致する1つのオーダーにつき1つのプロモーションコードです。私はなぜあなたがこのサーバー側を扱いたいと思うのか理解しています。実際には、ハードコーディングではなくデータベースを介してメッセージを更新できるコード変更を検討していますが、まだそこにはありません。通常、メッセージはルールファイルに保存され、一致するプロモーションコードが入力されると、チェックアウト時にカートにポップアップとして表示されます。私はあなたのJSPの提案を調査します。私はこの方法を邪魔しています。 – Scout

+0

@スカウトその後、オーダーのプロモーションコード(元のフラグメントに反映されていない)、AFAICTと比較する必要があります。プロモーションメッセージがJSPでハードコードされていても、サーバ側でこの作業を行い、フラグなどを公開するのは依然としてよりクリーンです。 S1タグの代わりにJSTL「」を使用してください。 JSTLとS1タグの機能が重複している場合は、JSTLを使用してください。 –

+0

もう一度ありがとうございます。私は今クラスファイルのロジックを見ています。 – Scout

関連する問題