0

Java、データベース アクセス用の JDBC、ビューにデータを渡すための Struts2、およびビューの操作を支援するための jQuery を使用して構築した Web アプリケーションがあります。

アプリが起動すると、Home.action が実行され、上部に「SIGN IN」リンクを含む Home.jsp ページが表示されます。上部に「サインイン」リンクを含む他のビューもあります。

ユーザーが「SIGN IN」をクリックすると、jQuery によって非表示のペインが表示され、ユーザー名とパスワードのテキスト フィールドと「ログイン」ボタンが表示されます。

これが私のジレンマです...現在、「ログイン」ボタンをクリックするとLogin.actionが実行され、Home.actionにリダイレクトされます。しかし、私が本当に望んでいるのは、Login.action がログインを実行するが、同じページにとどまることです。実際、ビューをまったく変更したり更新したりしたくありません。私は単にログインが行われ、他のすべてが同じままであることを望んでいます。

これには主に 2 つの理由があります。1) ユーザーが無効なフィールド データを入力した場合、またはログインに失敗した場合、どこにも行きたくありません。エラーをユーザーに表示したいだけです。2) 複数のページが上部にログインする機能を提供するため、任意に Home.action にリダイレクトしたくありません。ユーザーにはその場にとどまってもらいたい。

それで、コミュニティへの私の質問は次のとおりです。私がすでに採用しているテクノロジーでそれを行うことができますか (そしてどのように?)、それとも他のテクノロジーを追加することを検討する必要がありますか (どのテクノロジーを?)?

どうもありがとう!

4

1 に答える 1

2

できる限りまとめてみます。

オプション 1 : SPA (シングルページ アプリケーション) を使用します。jQuery の上に別の JavaScript フレームワークを追加して、作業を楽にすることができます。詳細: http://en.wikipedia.org/wiki/Single-page_application

オプション 2: jQuery (または市場で入手可能なもの) を使用して、独自の JavaScript MVC フレームワークを作成できます。

オプション 1 とオプション 2 のどちらかを決定すると、プレゼンテーション レイヤーとビジネス レイヤーの 2 つのレイヤーが作成されることに注意してください。

最後に、Web サービスに対して Ajax 呼び出しを行い、プレゼンテーション レイヤーからリダイレクトまたは表示動作を制御できます。結論として、プレゼンテーションはビジネス層から完全に独立しています。

例を説明できるかどうか見てみましょう。

これは、login.html の一部になります。

<script type="text/javascript">
$(document).ready(function(){
    $("#singInButton").click(function{
    var parameters = {SignIn:{username:"userNameFromField", password:"passwordFromField"}};
    $.post("signin", parameters, function(data, status){
            if(data.message === "SUCCESS") {
                alert("Welcome back.");
            }else{
                alert("Invalid credentials. Please, try again.");
            }
        });
    });
});
</script>

これにより、次のようなリクエストが生成されるとします: {SignIn:{username:"userNameFromField", password:"passwordFromField"}}

サーバー側では、これらが有効な資格情報であることが確認されました。したがって、次のようなものが返されます (申し訳ありませんが、私は Struts に詳しくありませんが、理解できると確信しています):

response.setContentType("application/json");
response.setResponseBody("SUCCESS");

最後に、ユーザー インターフェイスは「おかえりなさい」と警告します。応答をディスパッチする必要はありません。必要なものを正しい形式で返すだけです。もちろん、生活を楽にし、json または xml オブジェクトを JavaObject に変換するためのフレームワークが何百もあるので、文字列を手動で解析する必要はありません。

この例が私の言いたいことを明確にしてくれることを願っています。

乾杯、

于 2013-07-12T22:29:58.480 に答える