ホームページ >ウェブフロントエンド >htmlチュートリアル >名前空間を使用したアクションは再び元のページに戻ります。namespace_html/css_WEB-ITnose が原因でエラーが発生します。

名前空間を使用したアクションは再び元のページに戻ります。namespace_html/css_WEB-ITnose が原因でエラーが発生します。

WBOY
WBOYオリジナル
2016-06-24 11:55:17871ブラウズ

今日、私はランディングページを書きました。これは誰にとっても難しいことではないと思いますが、女の子として一度間違えました。

アクションで、名前空間を追加しました。詳細は次のとおりです。

<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 取得パスには以前の名前空間がありません。

他に方法があるかどうかはわかりませんが、床を蹴るのは大歓迎です!




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。