0

ばかげた質問かもしれませんが、私は本当に長い間そこにこだわっていました。誰かが手を差し伸べて、ここで根本的な原因を説明できることを願っています. ありがとう。

私の処理 JSP には、Javascript 関数を呼び出す次のコードがあります。すべての値は、POST アクションを介してフロントエンド JSP から取得されます。

<a onclick="loadPredecessorPage(${param.predecessorName})" href="javascript:;">
   ${param.predecessorTitle}
</a>

同時に、上記のヘッダーには、次の JavaScript 関数があります。

<script language="javascript">
      function loadPredecessorPage(predecessorName)
      {
           var url = predecessorName +".jsp";
           document.location.href = url;
      }
</script>

値を観察するためにfirebugを使用しました。価値観的には正しかった。実際、predecessorName 変数は、私自身の MVC 設計におけるモデル クラスの名前にすぎません。プログラムが機能していれば、ユーザーはリンクをクリックして、特定のモデル クラスの対応するフロントエンド ビュー JSP にアクセスできるはずです。

上記のコードで私が犯した欠点を誰かが指摘できますか?

4

1 に答える 1

0

静的 URL のみを開きたい場合は、hrefJSP 経由で完全な URL をリンクに渡すだけです。

<a href="${param.predecessorName}.jsp">
   ${param.predecessorTitle}
</a>

それでも、JavaScript 関数でページを開きたい場合は、読み続けてください。の代わりに
使用する必要があります(こちらを参照)。URL を HTML で渡したい場合は、対応する属性内でこれを行う必要があります。また、実行時に JavaScript を介してリスナーを追加することをお勧めします。 window.locationdocument.locationdata-

HTML の例:

<a id="loadPage" href="#" data-url="http://stackoverflow.com">Load Page</a>

jQuery コード:

$('#loadPage').on('click',function() {
    var url = $(this).data('url');
    window.location.href = url;
});
于 2013-02-05T11:14:52.763 に答える