2010-02-28 3 views
1

저는 JSP가 처음이며 텍스트 영역이있는 양식을 생성합니다. 텍스트가 HTML의 FORM TEXTAREA에서 /로 변환되어 URL 형식의 엔티티로 변환되거나 형식이 올바르게 변환되는 라이브러리가 있습니까?HTML 양식 텍스트 영역에 JSP 요청 인수를 변환하는 방법은 무엇입니까?

텍스트 영역 (타 이름) : 예를 들어

simple test with ampersand & in textarea 

URL : 당신이 스크립틀릿을 사용하는 경우

http://.../myapp.jsp?ta=simple+test+with+ampersand+%26+in+textarea 

답변

4

, 당신이 안전에 문자열을 인코딩하기 위해 URLEncoder.encode(String string, String encoding)을 사용할 수 있습니다 URL에서 사용하십시오. UnsupportedEncodingException을 던집니다. 따라서 catch해야합니다. 다음은 문자열을 인코딩하여 문서의 본문으로 표시하는 예제 JSP입니다.

<%@ page language="java" 
    import="java.net.URLEncoder" 
    contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<% 

String encoded = null; 
try { 
    encoded = URLEncoder.encode("simple test with ampersand & in textarea", "UTF-8"); 
} catch (Exception e) { 

} 

%> 
<html> 
    <head> 
    <title>MyTitle</title> 
    </head> 
    <body> 
    <%=encoded%> 
    </body> 
</html> 

그것은 더 연습 콘텐츠를 자동으로 인코딩합니다 특히 <c:url> 태그이 경우, JSTL을 사용하는 것입니다. 예를 들어, 귀하의 질문에 언급 된 인코딩 된 문자열 URL을 얻으려면, 당신은이 작업을 수행 할 수 있습니다 당신은 다음 식 ${myEncodedURL}에 액세스 할 수

<c:url var="myEncodedURL" value="http://.../myapp.jsp"> 
    <c:param name="ta" value="simple test with ampersand & in textarea"/> 
</c:url> 

합니다. JSTL을 사용하지 않는다면 학습 곡선이 필요합니다. taglib을 설정 한 다음 가져와야합니다. developerworks에이 JSTL 태그를 사용하는 방법에 대한 자세한 내용을 볼 수 있습니다.

+0

컴파일러 오류가 발생합니다. URLEncoder를 해결할 수 없습니다. 가져올 항목은 무엇입니까? URLEncoder를 사용하기 위해 필요한 헤더 또는 환경 구성을 제공 할 수 있습니까? BTW - JSTL로 전환하는 것이 좋습니다. – mobibob

+0

브래 스터 - 해결하지 못하는 apache.org.commons.lang에서 StringEscapeUtils 가져 오기에 관한 두 번째 질문을 검토하고 싶을 수도 있습니다. 내가이 일을하면 두 사람 모두에게 도움이 될 것입니다! 미리 감사드립니다. – mobibob

+0

java.net.URLEncoder를 가져와야합니다. Eclipse 또는 NetBeans와 같은 IDE를 사용하면 필요한 가져 오기를 찾을 수 있습니다. – Brabster

관련 문제