ホームページ >ウェブフロントエンド >htmlチュートリアル >名前空間を使用したアクションは再び元のページに戻ります。namespace_html/css_WEB-ITnose が原因でエラーが発生します。
今日、私はランディングページを書きました。これは誰にとっても難しいことではないと思いますが、女の子として一度間違えました。
アクションで、名前空間を追加しました。詳細は次のとおりです。
<form id="loginForm" action="actionPackage/login.action" method="post"> ...此处省略...</form>
ログインには問題ありませんが、問題は、ユーザー名またはパスワードが間違っています。もう一度戻る必要があります。ログイン ページに戻ったら、次の方法で指定した HTML ドキュメントに戻ることができます
このとき、問題が発生します。login.html では、外部の js ファイルが導入されています。詳細は次のとおりです:<package name="actionPackage" namespace="/actionPackage" extends="struts-default" > <action name="login" class="loginAction" method="execute"> <result name="success">/WEB-INF/index.html</result> <result name="error" >/login.html</result> </action> </package>問題はここにあります。ブラウザがlogin.htmlを返してjsファイルを取得するとき、jsファイルの取得アドレスはURLからの相対アドレスであるため、この時点で実際に問題が発生します。
フォームを送信するためにログインすると、URL に actionPage 名前空間が追加され、login.html に戻ると、URL に自然に actionPage が追加されます。その結果、外部 js ファイルを取得するときに、取得パスが追加されます。 actionPage も追加します。もちろん、スペースはこの js 外部ファイルを取得できません。
ログイン時のURLは http://localhost:8080/lfdcwtjxt/actionPage/login.action になります
ログインページに戻るとjs取得パスは http://localhost:8080/lfdcwtjxt/actionPage / になりますjquery-1.8.0,js
これは間違っています。http://localhost:8080/lfdcwtjxt/jquery-1.8.0,js
解決策は次のとおりです:
解決するにはリダイレクトを使用します: 構成は次のとおりです
<script language="javascript" type="text/javascript" src="jquery-1.8.0.min.js" />注: リダイレクトするときにスラッシュ / を使用しました。これは、探しているアクションが現在の名前空間に存在せず、別の名前空間 (デフォルトの名前空間) にジャンプすることを意味します。
リダイレクト設定:
<package name="actionPackage" namespace="/actionPackage" extends="struts-default" > <action name="login" class="loginAction" method="execute"> <result name="success">/WEB-INF/index.html</result> <result name="error" type="redirect">/login1</result> </action></package>さて、js 取得パスには以前の名前空間がありません。
他に方法があるかどうかはわかりませんが、床を蹴るのは大歓迎です!