Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 18:47 07.07.24 
Компютри и Интернет
   >> Java
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема JSF кирилицанови  
Автор bion ()
Публикувано07.03.07 10:03



Здравейте колеги,
Не съм сигурен че тук е правилното място на този въпрос, като гледам JSF не е много популярен в БГ.
Имам следният въпрос. До сега все съм писал някви проекти дето са на английски и никога не съм кирилизирал JSF приложение. Опитвам се да кирилизирам едно и резултата е катастрофален.
JSP страницата ми изглежда така:

<%@page language="java" pageEncoding="WINDOWS-1251" contentType="text/html; charset=CP1251" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:loadBundle basename="resources.application" var="bundle"/>
<f:view>
<html>
<head>
<title>
<h:outputText value="#{bundle['welcome.title']}" /></title>
</head>
<body>
<h:outputText value="#{bundle['welcome.heading']}" />
<h:outputText value="#{bundle['welcome.message']}" />
</body>
</html>
</f:view>
Както виждате от хедъра енкодинга е сетнат на 1251. В ресурс бъндела също съм го сетнал да се сейва на 1251 от еклипс-а. Когато стартирам в браузера приложението, ми показва един голям и дебел среден пръст, под форманата на маймуни. Бахти!!!! Айде някой ако се е занимавал с кирилизация да помогне.

ПС: Ползвам Jboss 4.0.5 възможно ли е той да скапва нещата? Май той ми е основният заподозрян!



Тема Re: JSF кирилицанови [re: bion]  
Автор the_brain (непознат )
Публикувано07.03.07 11:18



напражи си енkодинг филтер и го регистрирай в web.xml там сетваш енкодинга в хедъра на http-то. по-добре ползвай обаче utf-8 понеже е стандарт и няма да имаш проблем с различните OS



Тема Re: JSF кирилицанови [re: the_brain]  
Автор bion ()
Публикувано07.03.07 13:46



Не мисля че encoding filter-a е предвиден да се ползва съвместно със Java server faces. Убеден ли си че именно това е начина, можеш ли да ме препратиш към някакви интернет ресурси или да ми дадеш по дълго обяснение от 1 ред?



Тема Re: JSF кирилицанови [re: bion]  
Автор Matrix_N (Just a human)
Публикувано07.03.07 16:56



Java Server Faces най грубо казано представлява един Servlet, който се явява контролер. Не виждам какъв е проблема да се реши с Filter.



Тема Re: JSF кирилицанови [re: bion]  
Авторfir4o (Нерегистриран)
Публикувано08.03.07 09:25



Ами стандартните java.util.Properties четат само Latin-1 кодиране, така че твоето windows-1251 просто не се чете правилно. В този случай се прави друго. Използваш native2ascii - една програма от JDK-то, за да конвертираш файла в Latin-1. Той съответна заменя кирилските символи с escape последователност и всичко си тръгва. Ако ползваш ANT - в него има същият таск.



Тема Re: JSF кирилицанови [re: bion]  
Автор the_brain (непознат )
Публикувано09.03.07 17:29



/*
* UTF8EncodingFilter.java
*/

package com.itt.ecs.web.util;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
* This class is used for UTF-8 encoding
*
* @author Adrian Mitev
*/
public class UTF8EncodingFilter implements Filter {

/**
* @param config
* @throws javax.servlet.ServletException
*/
public void init(FilterConfig config) throws ServletException {

}

/**
* Sets the request and response character encoding to UTF-8
*
* @param request
* @param response
* @param chain
* @throws java.io.IOException
* @throws javax.servlet.ServletException
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}

public void destroy() {

}

}
кода на филтъра





Тема Re: JSF кирилицанови [re: bion]  
АвторAвтoмaтизaтop (Нерегистриран)
Публикувано15.03.07 13:12



Ако искаш да запазиш сегашната си схема, трябва да направиш точно две неща, които следват. Ако не, виж след тях.

1. Ако твоите bundles са написани в .properties файлове, тогава си ги прекодирай с native2ascii програмката -- тя е част от JDK-то. Отделен въпрос е, че някои IDE-та го правят вместо теб, когато стартираш или дебъгваш уеб-проекта си.

2. Името на кодировката ти е грешно -- в UNIX/Linux може и да е "cp1251", но в HTML/XML е "windows-1251".

Съвсем друг въпрос е, че го правиш по глупавия начин. В JSF не се дава така кодировката, прави се чрез XML пролога, ето така:

<?xml version="1.0" encoding="windows-1251" ?>

Както се прави във всеки XML файл. Никакви мистични директиви на съответния framework.

И накрая, зарежи 8-битовите фиксирани кодировки, ползвай UTF-8. Ако не знаеш, той е разширеине на US-ASCII, направено така, че US-ASCII символите (демек латиницата) да са в абсолютно същия формат, в какъвто са били преди, а останалите езикови символи са няколко-байтови с променлива дължина, т.е. с една кодировка поддържаш ВСИЧКИ езици. Всички нови браузъри поддържат UTF-8 кодировката, вкл. и Internet Explorer 5.5, а той хич не е нов, отдавна при това.

Поздрави.



Тема Re: JSF кирилицанови [re: Matrix_N]  
Автор bion ()
Публикувано02.04.07 23:33



Защото е безсмислено затова. Има много по елементарен, ефикасен и бърз начин. Да решиш проблемът със филтър е все едно да ползваш пещ за топене на стомана за да си сготвиш чипс.



Тема Re: JSF кирилица [re: Aвтoмaтизaтop]  
Автор bion ()
Публикувано02.04.07 23:34



Мерси за отговора макар че го чета със месец закъснение. Това е правилното решение на проблемът ми. Казвам го само за протокола.
Поздрави и благодаря.



Тема Re: JSF кирилица [re: bion]  
Автор Matrix_N (Just a human)
Публикувано03.04.07 11:34



Значи е по добре да пипаш и да добавяш на една камара страници едно и същот отколото да напишеш един обикновен клас?

ПП: Стоманата не виждам защо трябва да се топи в пещи. Обикновенно пещите се използват за закаляване, нормализация или отвръщане на стоманата. А това с топенето се нарича леене, и тъй като стоманата има прекалено ниско съдържание на въглерод няма как да се лее, затова чугуна се лее, защото има по високо съдържание на въглерод и се намира над евтектоидната крива в желязо - циментитната диаграма.




Страници по тази тема: 1 | 2 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.