私はウェブ開発が初めてです。エラーの詳細をプロンプトに表示する機能を持つ外部 JavaScript ファイルがあります。エラーメッセージを関数に渡す必要があります。サーブレットでコントローラーを作成しました。
サーブレットからその JavaScript ファイルの関数を呼び出す方法。
私はウェブ開発が初めてです。エラーの詳細をプロンプトに表示する機能を持つ外部 JavaScript ファイルがあります。エラーメッセージを関数に渡す必要があります。サーブレットでコントローラーを作成しました。
サーブレットからその JavaScript ファイルの関数を呼び出す方法。
サーブレットから Java スクリプト関数を呼び出すことはできません。むしろ、次を使用して JavaScript コードを印刷できます。
response.getOutputStream().println("[javascript code]");
ブラウザに入力すると、javascript 関数がブラウザで実行されます。
サーブレットは Web ブラウザーではなく Web サーバーで実行されること、および JS は Web サーバーではなく Web ブラウザーで実行されることを理解する必要があります。通常の方法では、サーブレットが要求をJSPファイルに転送し、Web サーバーによって Web ブラウザーに送信される HTML/CSS/JS コードが生成されます。最終的に、HTML/CSS/JS コードはすべて Web ブラウザーで実行されます。
(やや奇妙な、tbh)機能要件を達成するには、転送された JSP に特定のスクリプト呼び出しを条件付きでレンダリングさせます。たとえば、JSON 配列形式でエラーを収集して設定したと仮定すると、次のようにJSTLが使用されます。 <c:if>
${errors}
<c:if test="${not empty errors}">
<script>displayErrors(errors);</script>
</c:if>
または、JSP に JS 変数として割り当てさせ、JS にさらに処理させます。何かのようなもの:
<script>
var errors = ${errors};
if (errors.length) {
displayErrors(errors);
}
</script>
奇妙な要件について言えば、JS を使用してメッセージを表示することを余儀なくされている場合、それは、alert()
または何かを使用していることを意味するだけです。これは非常に 90 年代のものであり、ユーザー フレンドリーではありません。HTML が入力フィールドの横に配置されるか、フォームの上のリストに配置されるように、JSP に HTML を生成させるだけです。私たちのサーブレット wiki ページには、まさにそのように動作する hello world の例があります。
次の方法を使用して、同様の種類の動作を実現できます。応答自体を送信するときに、JS イベントを提供できます。
PrintWriter out = response.getWriter();
out.println("<tr><td><input type='button' name='Button' value='Search' onclick=\"searchRecord('"+ argument + "');\"></td></tr>");
そのため、検索ボタンをクリックすると、JS の検索レコード メソッドが呼び出されます。