2009-07-08 23 views
3

jstlタグ内のタグが不良フォームとみなされていますか?だから私は、次のことが動作することを知っているが、それは私のJSPで私のjstlタグ内のスクリプトタグを持って悪いフォームと考えられている?JSTLとJavascript

<c:choose> 
    <c:when test="${!empty bean.value}"> 
    <p>Its not empty</p> 
    </c:when> 
    <c:otherwise> 
    **<script> 
     callJSSomeFunction(); 
    </script>** 
    </c:otherwise> 
</c:choose> 

答えて

4

私は(ビット厳しい)について悪いフォームを知りませんが、あなたはJSせずに自分のページを見て誰かにそれを考慮するかもしれないが、あなたの<c:otherwise>ます効果的に出力何も有効になっていません、それは非常に優雅ではありません。

また、ページが段階的にレンダリングされると、関数呼び出しは実行時に実行され、DOMがブラウザによって完全に読み込まれ、予期せぬ動作をする前に実行される可能性があります。これが起こる)。

すべての関数呼び出しを頭に入れ、DOMがロードされたことを検出するための多くの利用可能な手法を使用して、細かい分離を実行し、それをはるかに簡単にします。

2

私はそうは思わない - これはあなたが条件付きでJSTLで物事を行う方法を、私はあなただけのものを持っているために、スクリプトタグを持たなければならないとは思わないです。

1

私は今、パンチボールのいくつかの大きな巨大JSTL terdsを扱っていますので、私はUI開発の視点をミックスに投げ込むと思っていました。

SGMのようなシンタックスの別のドメインをラップするSGMのようなシンタックスはひどい形ですが、一般的にはあなたのせいではありません。しかし、あなたはそれを分離しておくことで、より良くするのを助けることができます。これは必ずしも可能ではありませんが、varsを設定して必要な場合にのみHTMLにドロップするほど良いでしょう。

もう1つの問題は、クライアント側のスクリプトをサーバー側のコードで直接設定しようとしていることです。私はUIコードを処理してきた5年の経験から、そう言います。それは大きな巨大なPITAですあなたのUIの人々が突然トリガーに遭遇すると、彼らは起源にどのように追いつくのか分からず、何も支配しません。地獄、Javaの開発者でさえ、物事が十分に醜い場合に起源に従う方法を必ずしも確実にはしないということを引き起こします。

私たちの靴を想像してみてください。サービス駆動型アーキテクチャを採用しますが、Java文字列をparamミックスに追加して、クライアント側からオブジェクトメソッド呼び出しを実際に確立できるようにしましょう。それは良いアイデアですか?いいえ、ひどい考えです。 JavaScriptの開発者がJavaを書くことを望まないからではありません(実際そうではありません)。しかし、この2つの分離点では、できるだけシンプルにする必要があります。私はあなたにデータを送りますが、あなたはそれに対処することができます。

私たちはすでにデータを手渡しています。理想的にはJSON形式ですが、JSの実行がサーバーによって決定されないようにするために何かを用意します。あなたが望む最後のものは、あなたのOOP殺す豆で満たされた牧草地でのUIの蹄の踏み台です。なぜなら、何の理由もなくHTTP壁の両側のポイント間にぎこちなく縛られていたものを探し出さなければなりません。これまで私には分かりやすいものでした。私たちは岩の周りのメッセージを包み込み、壁にチャックする。それは控えめではありますが、私の経験では「シンクライアント」のソリューションはこれまで以上に苦痛を軽減しました。

あなたの「ick」本能を信頼してください。時には彼らは間違っていますが、あなたはそれが正しいと思うので、あなたはまだそれについて考えている朝にシャワーでこれを理解しなければなりません。