include file в JSP и encoding проблем?

7 отговора 0 прегледа
#1

include file в JSP и encoding проблем?

Направил съм приложение което има JSP страници, всяка, от които включва <%@ include file="Footer.html" %>
В този файл има просто няколко линки представляващи текст на кирилица. Страниците които включват този файл също са на кирилица.
Проблема е, че когато някоя от JSP страниците я пусна в Тоmcat 5.5 на мястото на кирилицата във включения HTML файл има само въпросителни. Главните страници са ок, кирилизирани добре, но в частта която е от включения файл не се показва кирилица правилно.

Сложил съм в главните страници

<%@ page contentType="text/html; charset=windows-1251" %>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Втория ред го слагах и в инклуднатия html файл но без резултат. В него се появяват само въпросителни на мястото на кирилицата?

Някой може ли да даде съвет как да се оправи това? В Jbuilder X го показва нормално, но като сложа WAR файла в Tomcat-а ми прави проблем...

Отговор
в отговор на rort #2

Re: include file в JSP и encoding проблем?

Интересен проблем:
From JSP 2.0 spec:
Additionally, in JSP 1.2, page encodings are determined on a per translation
unit basis whereas in JSP 2.0, page encodings are determined on a per-file
basis. Therefore, if a.jsp statically includes b.jsp, and a page encoding is
specified in a.jsp but not in b.jsp, in JSP 1.2 a.jsp’s encoding is used for b.jsp,
but in JSP 2.0, the default encoding is used for b.jsp.

Most properties defined in a JSP property group apply to an entire translation
unit, that is, the requested JSP file that is matched by its URL pattern and all the
files it includes via the include directive. The exception is the page-encoding
property, which applies separately to each JSP file matched by its URL pattern.

The page character encoding is the character encoding in which the JSP page or
tag file itself is encoded. The character encoding is determined for each file separately,
even if one file includes another using the include directive
(Section JSP.1.10.3).

The JSP container must detect the syntax for each JSP file individually and
parse each JSP file according to the syntax in which it is written.

Това е трики щото можеш да имаш няколко инклуднати страници и всяка на различен език. т.е. това не е решение, връзване на гащите.
Проблема идва от уеб контейнера, който чете страниците с един и същ енкодинг. Трябва да се провери има ли стандартно решение на проблема. Да речем да опишеш хтмлите като ЖСП-та в уеб.хмл и да им сложиш пагеенкодинг.

Отговор
в отговор на toshe #3

Re: include file в JSP и encoding проблем?

toshe е прав. Опиши си HTML-ите като JSP сложи си pageEncoding и кирилизацията ще се оправи.

Отговор
в отговор на ferdi #4

Re: include file в JSP и encoding проблем?

Но къде точно трябва да ги опиша като jsp? В web.xml файла ли? В каква секция и само да ги опиша или и да ги преименувам?

Мерси предварително за отговора

Отговор
в отговор на rort #5

Re: include file в JSP и encoding проблем?

Мисля, че ferdi има предвид да сложиш :
<% @page pageEncoding="windows-1251" %>
в страницата която включваш с include.

Отговор
в отговор на rort #6

Re: include file в JSP и encoding проблем?

В уеб.хмл има един таг джиеспи конфиг. Виж какво може да направиш с него.

Отговор
в отговор на toshe #7

Re: include file в JSP и encoding проблем?

toshe, не съм сигурен дали те разбрах правилно
в web.xml файла сложих

<jsp-config>
<jsp-property-group>
<url-pattern>*.html</url-pattern>
<page-encoding>Windows-1251</page-encoding>
</jsp-property-group>
</jsp-config>

но не виждам някакъв ефект?
така ли трябваше да направя?

Отговор
в отговор на rort #8

Re: include file в JSP и encoding проблем?

В началото на всеки include-нат файл джаскай:

<%@ page language="java" contentType="text/html; charset=CP1251" %>

или там какъвто charset използваш

Отговор