2012-03-13 33 views
1

テキストボックスとボタンを含む小さなJSPページを作成しました。私がしようとしているのは、ボタンをクリックすると、テキストボックス(文字列)に書いたものを表示することです。すべてのシナリオでうまくいきましたが、文字列を二重引用符( "")に入れるシナリオでは機能しませんでした。私はその仕事をすることができる方法はありますか?たとえばについてはJSPのテキストボックスから二重引用符を表示する

:私は、テキストボックス内のABCDを記述する場合、それが正常に動作します。しかし、「abcd」(二重引用符で囲む)を書くと、二重引用符内のテキストは表示されません。私たちは、テキストボックスにABCDを記述する場合、それは「ABCD」としていると私は、テキストボックス内の「ABCD」を書いた場合、それが取られる:

は、私は(例を起こっている理由を理解します"" abcd "")が、その解決策を見つけることができませんでした。

それとも解決策はありますか?

答えて

6

はい - 引用符をエスケープします。あなたは"

でいくつかのより多くのケースをカバーしますすぐに使用できるソリューションをそれらを交換する必要がありコモンズ・ラングですStringEscapeUtils.escapeHtml(str)

+0

@hari:ここで重要な点は、属性のテキストが他のすべてのHTMLテキストと同様にマークアップされているため、エンティティを二重引用符に使用することです。 (これは、href = "page.jsp?foo = 1&bar = 2" 'のように、常にhref属性値**のクエリ文字列の'& 'はエスケープされるべきです可能であればお手伝いください; href = "page.jsp?foo = 1 & bar = 2" 'にする必要があります。 –

0
あなたは脱出するためにHTML ..

使用escapeHtml(String str)機能を逃れるためにStringEscapeUtilsを使用することができます

HTML文字..

StringEscapeUtils.escapeHtml(str) 
1

ねえ、それは他のライブラリなしで正常に動作します。この方法を試してください。

例えば

:JSPファイルで

、サーブレットで

<form action="Login"> 
     Enter :<input type="text" name="txtStr"></input> 
     <input type="submit" name="btnGo" value="Go"></input> 
</form> 

、dis.jspで

String str = request.getParameter("txtStr");  
System.out.println("helo : " + str); 

request.setAttribute("str", str); 
request.getRequestDispatcher("/dis.jsp").forward(request, response); 

<body> 
    ${str} 
</body> 
関連する問題