0

私が作成したこのプログラムを入手しました: http://www.2shared.com/file/73q6K9Yy/testv.html Login.java はサーブレットであり、login.vm テンプレートを使用し、それを変更する必要があります。それは何もしません、そして私はその理由を理解していません。関数内:

public Template handleRequest(HttpServletRequest request,HttpServletResponse response, Context ctx )

私が置く場合:

 error= (String) request.getAttribute("error");
 ctx.put("error", error);

それは何もしません。私が置く場合:

 error= request.getAttribute("error").toString();
 ctx.put("error", error);

Java ヌル ポインター例外が発生します。しかし、私が置くと:

 ctx.put("error","this is a string");

テンプレート login.vm の変数をその文字列に変更します。リクエストから属性を取得しないのはなぜですか、私が間違っていることです。

PS: [登録] ボタンを押すと、"/reg.jsp" ページにリダイレクトされます。私はこれが機能するかどうかを確認するためだけに作成しましたが、機能しません。JSPを使用してMVCで同じプログラムを作成しましたが、インターンシップのために速度で作成する必要があります。

4

1 に答える 1

1

私の推測では、リクエストの「エラー」キーの下に属性はありません。Velocity自体とは何の関係もありません。null例外が発生する行番号を確認すると、コードの抜粋の最初の行になります。

Webコンテキストでは、次のバージョンで廃止される非推奨のVelocityServletではなく、velocity-toolsサブプロジェクトのVelocityViewServletを使用する必要があることに注意してください。

于 2012-04-23T10:58:02.420 に答える