2

Webプロジェクトには、機能の異なるいくつかのボタンが必要ですが、それを実現する正しい方法がわかりません。私はテストのためだけにこのようにしました:

<input name="command" type="hidden" value="redirect"></input>
<input type="submit" name="page" value="Make order"></input>
<input type="submit" name="page" value="See bills"></input>
<input type="submit" name="page" value="See orders"></input>

次に、コマンドで、どのボタンがクリックされたかを確認するために、ページ名の列挙型を切り替えます。1つのボタンはクライアントを別のページにリダイレクトするだけで、他のボタンは独自のコマンドを呼び出す必要があります。

フォームを後処理するのは悪い習慣だと知っているsubmitので、別の方法を探しています。JSを使用するようにアドバイスされましたonclickが、経験がなく、プロジェクトに適した簡単な例が見つかりません。

編集済み

ViewBillActionとViewOrderActionのアクションクラスがあります。また、必要なアクションを定義するためのクラスがあります。

public class Redirect implements Action {

@Override
public String execute(TransferredData requestInformation) {
    String pageName = requestInformation.getRequestParameter("page");
    Action action;
    switch (pageName.toUpperCase()) {
    case "MAKE ORDER":
        return JSPManager.INSTANCE.getProperty(JSPManager.ORDER_PAGE_PATH);
    case "VIEW BILLS":
        action = new ViewBillsCommand();
        return action.execute(requestInformation);
    case "VIEW ORDERS":
        action = new ViewRequestsCommand();
        return action.execute(requestInformation);

主な問題は、JSでボタンクリックイベントをどのように処理するかがまったくわからないことです。しかし、これは私がそれを行うべき方法であり、私は簡単な例に非常に感謝するでしょう。

4

1 に答える 1

2

typesubmitは、処理のためにフォーム データをサーバーにポストすることを意味します。投稿リクエストを行っていない場合は、button代わりに使用する必要があります。submit

<input name="command" type="hidden" value="redirect"></input>
<input type="button" name="page" value="Make order"></input>
<input id="seeBillsButton" type="button" name="page" value="See bills"></input>
<input type="button" name="page" value="See orders"></input>

javascript/を使用jqueryして、ボタン クリック イベントを処理します。

$("#seeBillsButton").click(function() {
  alert("Handler for .click() called.");
});

編集 済み サーバー側では、これらのリクエストを処理するために 3 つのアクションが必要です。

  1. MakeOrderAction
  2. ViewBillAction
  3. ViewOrderAction。

MakeOrderAction の場合、ユーザーを注文ページにリダイレクトしたいだけで、javascript (またはハイパーリンク) のクリック イベントによってこれを処理します。

ViewBillAction と ViewOrderAction では、各アクションが jsp に関連付けられ、そこに結果が表示されます。これをアーカイブするには 2 つの方法があります。それらに対して 2 つのフォームを作成し、対応するアクションに別々に送信することができます。または、同じフォームを使用して、クリックイベントでどのユーザーがクリックしたかを確認し、JavaScript でフォームを処理して送信することもできます。結果の jsp ページは、アクション クラスで定義する必要があります。

http://api.jquery.com/click/

于 2013-01-31T09:03:09.517 に答える