2012-05-02 20 views
0
<input type="text" name="designation" value=<%=request.getParameter("designation")%> ></input> 

を表示し、私はwindow.locationのを使ってJavaScriptで別のJSPページからリクエストパラメータを送ってきました。 replace()関数。は、リクエストパラメータ(空白の文字列値)JSPでこのJSPでテキストボックスにのみ最初の空白件まで

このリクエストパラメータをこのjspページのテキストボックスに表示したいとします。

しかし、最初の空白文字までの文字列の一部のみを表示しています。残りの文字列が切り取られます。

この問題の原因はなんですか?

指定が "ソフトウェアエンジニア"の場合、テキストボックスには ""(スペース)と "エンジニア"ではなく "ソフトウェア"のみが表示されます

答えて

5

属性値を引用符で囲む必要があります。

<input type="text" name="designation" value="<%=request.getParameter("designation")%>"> 

そうしないと、スペースはHTML要素属性セパレータとして解釈され、次の単語は別のHTML要素属性になります。具体的な問題へ


無関係あなたのJSP全体でこのアプローチを使用する場合も、各DBからユーザ制御データを再表示するために、あなたはXSS attack穴をしました。 HTMLエスケープが適切であることを確認してください。 XSS prevention in JSP/Servlet web applicationも参照してください。

+0

お返事ありがとうございました。さて、私はスペースで正しく値を取得しています。私はそれらを二重引用符で囲むことを知らなかった。それは素晴らしいです..たくさんありがとう! –

関連する問題