1

request 属性に次のように設定しています。

confirmMsg = "REf No: \n 112"; 
req.setAttribute("confirmMsg", confirmMsg); 

上記を(アラートボックスに)表示する必要があります:

参照番号:

112

JavaScript で次の onload 関数を使用して、ページの読み込み時にメッセージを表示しています。

function onLoad() {
 var msg = "${confirmMsg}";
  if(msg != null && msg != "") {
    alert(msg);
   }

}

上記はスクリプトエラーをスローしますか? 改行文字を渡すにはどうすればよいですか?

4

2 に答える 2

4

を JavaScript 文字列リテラルに入れるには、JavaScript エスケープする\n必要があります。

commons-langStringEscapeUtils.escapeECMAScript()を使用してメッセージをエスケープし、このエスケープされたメッセージを JSP に渡します。

于 2012-04-18T13:31:10.250 に答える
0

前述したように、JSP と JavaScript を混同しないでください。

あなたがしたいことは、JavaScript コード ブロックで使用される JSP/サーブレット (JSP はサーブレット) から文字列メッセージを出力することです。

これを行うには、JB Nizet によって記述された StringEscapeUtils.escapeECMAScript メソッドを使用するなどして、メッセージを JavaScript 用にエンコードする必要があります。

次に、応答を作成するjspまたはサーブレットで、JavaScriptが作用する変数を出力する必要があります。

<%= confirmMsg %>

${} ではありません。これは、すべての jsp で常に使用できるとは限らない式言語であるためです。

つまり、"${confirmMsg}" から <%= confirmMsg %> または <%= (String)request.getParameter("confirmMsg") %> // または request.getAttribute などに変更します。

于 2012-04-18T13:36:15.460 に答える