2013-11-20 26 views
1

問題在於,對於某些tomcat服務器,href值中的&的鏈接標記在頁面顯示時被翻譯爲&,但與其他tomcat 7.0.47不同它看起來很奇怪,因爲它應該起作用。&未編碼爲&使用tomcat 7.0.47

我用這個:

<jsp:directive.page contentType="text/html;charset=UTF-8"/> 
<jsp:directive.page pageEncoding="UTF-8"/> 

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
    <meta http-equiv="X-UA-Compatible" content="IE=8"/> 
</head> 

但它仍然沒有FOT他的Tomcat版本的工作。

我正在使用spring-mvc,並且使用spring-roo配置了項目。

問題發生在這個自定義標籤中。

<menu:item id="fi_user_username" messageCode="global_menu_find" 
         url="/movies?find=ByMoviename&amp;form" 
         z="Pt1/VjKgu7t6Aha3OJt4uC0yZR4="/> 

自定義標記url內部是$ {url}。

  <spring:url value="${url}" var="menu_item_url"/> 
      <a href="${menu_item_url}" title="${fn:escapeXml(label)}" id="${fn:escapeXml(id)}_a"> 
      <c:out value="${label}"/> 

即是考慮到瀏覽器的Web出現的元素是這樣的:

<a id="fi_movie_moviename_a" title="Find by Moviename" href="/movie-server/movies?find=ByMoviename&amp;form" class="selected_movie_submenu">Find by Movie name</a> 

Tomcat有默認的配置。

感謝您的幫助。

+0

我沒有進入JAVA世界,但這與頁面編碼或甚至AFAIK無關,您的網絡服務器。在JSP中沒有像'HtmlEncode()'方法嗎? –

+1

你沒有給我們足夠的信息。你如何顯示鏈接標籤?你用什麼元素來顯示它?它如何顯示出來?它與IE兼容性,JSP和UTF-8無關。 –

+0

問題是,對於tomcat 7.0.47不起作用,對於Tomcat/7.0.39它的作用,我認爲是關於tomcat配置,但是當我檢查它們幾乎是相同的,除了在server.xml中的一些mimetype標記文件 – Josema

回答

4

從7.0.42升級到7.0.47後,我遇到了同樣的問題。它看起來像「Tomcat」和Spring標籤正在逃脫&

爲防止Spring跳出該URL,可以將htmlEscape="false"添加到url標記。

+0

工作。我在我的自定義標籤item.tagx中添加了htmlEscape =「false」,並且工作正常。 – Josema

+0

在搜索我的錯誤幾個小時後找到了這個=)THX !!!!!! – Starbax