3

リダイレクトページのコントローラーとしてサーブレットを使用しています。だから、私は次のリンクを持っています:

<li><a href="actionController?key=contact">Contact</a></li>
<li><a href="actionController?key=support">Request support</a></li>

たとえば、コントローラーのこのパラメーターで受信し、Contact.jspページのページからリクエストをリダイレクトしたいと思います。

したがって、私はそれが次のようになると思います:

    contact = request.getParameter("contact");

    support = request.getParameter("support");

    if (contact.equals("contato"))
    {
        RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/center/Contact.jsp");
        view.forward(request, response);        
    }
    else if (support.equals("support"))
    {
        RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/center/Support.jsp");
        view.forward(request, response);
    }

ただし、動作していません。java.lang.NullPointerExceptionが発生しています。

ありがとう

4

5 に答える 5

5

サーブレット コードが HTML スニペットと一致していないようです。私はあなたが書く必要があると思います:

    String key = request.getParameter("key");

    if (key != null && key.equals("contact"))
    {
        RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/center/Contact.jsp");
        view.forward(request, response);        
    }
    else if (key != null && key.equals("support"))
    {
        RequestDispatcher view = request.getRequestDispatcher("/WEB-INF/center/Support.jsp");
        view.forward(request, response);
    }
于 2012-12-13T02:49:52.040 に答える
1

最初にkeyparam name as を使用して値を取得しますkey(これが問題の根本的な原因です) NullPointerExceotion

String key = request.getParameter("key");
if ("contact".equals(key)){
    RequestDispatcher view = 
                       request.getRequestDispatcher("/WEB-INF/center/Contact.jsp");
    view.forward(request, response);        
}else if ("support".equals(key)){
    RequestDispatcher view = 
                       request.getRequestDispatcher("/WEB-INF/center/Support.jsp");
    view.forward(request, response);
}

必要に応じて、デフォルトの処理も追加します。つまり、keyどちらcontactでもないシナリオを処理しますsupport

于 2012-12-13T03:17:27.073 に答える
0

これは、「連絡先」または「サポート」パラメータが見つからないことを意味します。使用する前に null かどうかを確認してください。

于 2012-12-13T02:49:33.110 に答える
0

次のコードを試してください。

    String key = request.getParameter("key");

    if(null == key){
    // do something

    } else if(key.equals("contact")){
    // do something else

    } else if(key.equals("support")){
    // do something else

    } else {
    // etc

    }
于 2012-12-13T02:53:00.833 に答える
0

リクエストには「contact」または「support」パラメーターは含まれませんが、代わりに「key」パラメーターが含まれます。

RFC 3986を参照することをお勧めします- クエリ パラメータを含む URI 構文について説明しています。

于 2012-12-13T02:55:41.823 に答える