0

ユーザーとの各 Web アプリケーションは、ユーザーのリストから呼び出すことができる何らかのアクションを実装する必要があります。このような:

Login   Name    Lastname   Options
user1   name1   lastname1  ViewProfile Follow Ban
user2   name2   lastname2  ViewProfile Follow Ban
user3   name3   lastname3  ViewProfile Follow Ban

ユーザーのリストは、データベースから出力された javabean から生成されます。ユーザーのリスト、ユーザーの属性、およびユーザーに対して実行できるオプションを想像する最も簡単な方法は、テーブルです。タスクは、特定のユーザーに対してアクション (ViewProfile、Follow、Ban など) を呼び出す実装です。アクションを呼び出すと、コントロールが適切なサーブレットに転送されます。(だから私はViewProfile、Follow user、Ban user ...のサーブレットを持っています。)サーブレットはデータを準備し、それをいくつかの jsp ページに転送します。大丈夫。問題は、どのユーザー プロファイルを表示する必要があるか、またはログに記録されたユーザーがどのユーザーをフォローする必要があるかという情報にある可能性があります (user_id に関するサーブレット情報を提供するだけです)。

使用できる2つのアプローチを見つけました(おそらくもっとあります):
1)ViewProfileを使用すると、テーブルは実際にはhtmlのテーブルとして表されます。2) 各アクションにフォームを使用する。この場合、ツリー ユーザーには 9 つのフォームがあります。各フォームには、user_id と送信ボタンを転送するための user_id として値が設定された input type="hidden" があります。方法は郵送になります。

ソリューションの長所と短所: 1) 書きやすい。ただし、パラメーターは url にあり、メソッドは get しかありません。2) メソッド post を使用できます。しかし、タグ内にフォームを入れることができないため、最初のケースのようにテーブルを使用することはできません。

2番目のケースをテーブルのようにフォーマットするための最良のアプローチは何ですか(最初のケースのように)?
または、これを解決するための私の 2 つのオプションよりも良い方法がある場合、それは何ですか?

Java 7、Tomcat 7、サーブレット、JSP と jslt、html5 と CSS を使用しています。

4

1 に答える 1

0

3 つのアクション ( ViewProfileFollowBan ) のうち、最初のアクションは GET の候補のように聞こえますが、他の 2 つのアクションは POST アクションのように聞こえます。

FollowサーブレットとBanサーブレット (および必要に応じてViewProfile ) へのPOSTでは、クリックイベントで JavaScript を介して入力および送信されるテーブルの外側のフォームを使用できます。

<form id="followForm" action="...follow.do" method="post">
    <input id="followUserId" type="hidden" value="-1" />
</form>

<form id="banForm" action="...ban.do" method="post">
    <input id="banUserId" type="hidden" value="-1" />
</form>

非表示フィールドを設定してフォームを送信するリンクに (クラス名を介して)クリックリスナーをアタッチします。

$(".followLink").click(function() {
    $("#followUserId").val($(this).prev().prev().text()); // navigate the table to get the user login id
    $("#followForm").submit();
});

このソリューションでは簡単にするために jQuery を使用していますが、onclickを使用して外部の JavaScript ライブラリを使用しなくても実行でき、もう少し作業を行うこともできます。

于 2013-01-15T19:57:47.570 に答える