2010-11-25 3 views
0

실제 값을 변경하지 않고 쿼리 문자열에 "#"을 교체 내 DB에서 데이터를 가져 와서 페이지를 채 웁니다.내 JSP에서 하나 개의 쿼리 문자열이

그러나 과 같은 것을 반환 할 때 myBean.getApplication이 빈 화면을 표시하고 있는데, 이는 검색어가 "#"과 마주 치게되어 확실히 나타납니다.

은 내가 replace() 방법을 사용하여 "#"를 대체 할 수있는,하지만 난 내 index.jsp 페이지에서 다시 요청 객체를 사용하여 해당 응용 프로그램 이름을 당겨 이대로, 그것은 안정적이고 좋은 찾을 수없고, 해시의 교체는 추한 만들 것입니다. 그래서 거기에 "#" 유지할 수있는 방법이 무엇입니까?

다른 모든 즉시 사용 가능한 해결책은 인정 될 것입니다.

답변

0

URL 인코딩은 올바른 작업입니다.

href='www.me-me.com/index.jsp?application=<%= 
    URLEncoder.encode(myBean.getApplication(), "UTF-8") 
%>&appId=<%= 
    URLEncoder.encode(myBean.getAppId(), "UTF-8") 
%>'>LINK 

당신은 URL 매개 변수로 문자열 값을 수송 할 수 있지만 가 제대로 인코딩해야하거나 URL은 당신이 그것을 발생하는 것처럼, 휴식 것입니다. URLEncoder가 정의 된 곳이기 때문에

당신은 당신의 페이지에

<%@ page import="java.net.*" %> 

문을 필요 했어.

+0

값을 인코딩 한 후 개체 (URLDecoder.decode)를 디코딩하여 개체를 요청하는 동안 저장해야합니까? – Rocker

3

JSTLc:urlc:param을 사용하십시오.

<c:url var="url" value="http://www.me-me.com/index.jsp"> 
    <c:param name="application" value="${myBean.application}" /> 
    <c:param name="appId" value="${myBean.appId}" /> 
</c:url> 

<a href="${url}">LINK</a> 

구식 스크립과 번거 로움 필요가 없습니다.

+0

+1. 가장 쉬운 방법입니다. –

+0

+1, 멋지고 깨끗합니다. – Tomalak

관련 문제