| Author |
Message |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/10/2008 10:39:13
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
Pessoal, estou com uma dúvida aqui que pode ser legal constar no
histórico do forum, seguinte,
nas actions eu uso o input.getStringValue('key') para pegar os parametros
do tipo String, até ai tudo bem, porém meu banco de dados suporta apenas
ISO-8859-1, e os usuários estão dando CTRL+C em textos do m$ word que
estão em UTF-8, e isso acarreta em um erro. oque eu preciso fazer é o
seguinte,
Toda vez que eu fizer um input.getStringValue('key'); esse executa
esse código:
Code:
return new String( value.getBytes(), Charset.forName("ISO-8859-1"));
Ou seja, converter sempre para ISO-8859-1, sei que posso extender alguma
classe e sobreescrever o método. porém não sei qual a implementação
e não sei onde eu seto que quero usar a minha implementação e não
a default do Menta.
Podem me dar uma ajuda?
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/10/2008 11:16:33
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
Estive olhando, terei que sobreescrever o metodo
getStringValue do RequestInput e o
prepareAction da classe Controller
para utilizar a classe que eu criar extendendo RequestInput.
É isso mesmo? ou há alguma forma melhor?
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2008 06:03:47
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
Bom fiz da seguinte forma?
Code:
public class ControllerMaringa extends Controller {
@Override
protected void prepareAction(Action action, HttpServletRequest req,
HttpServletResponse res) {
action.setInput(new RequestInputMaringa(req));
action.setOutput(new ResponseOutput(res));
action.setSession(new SessionContext(req, res));
action.setApplication(appContext);
action.setCookies(new CookieContext(req, res));
action.setLocale(LocaleManager.getLocale(req));
}
}
Code:
public class RequestInputMaringa extends RequestInput {
public RequestInputMaringa(HttpServletRequest req) {
super(req);
}
/**
* If the parameter is not a String, its toString() method is called.
*/
public String getStringValue(String name) {
Object o = map.get(name);
return (o != null ? new String( o.toString().getBytes(), Charset.forName("ISO-8859-1")) : null);
}
}
Code:
<servlet>
<servlet-name>Controller</servlet-name>
<servlet-class>mentawai.ControllerMaringa</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2008 18:04:58
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
A sua solução é boa. Mas pare evitar tanta dor de cabeça pra fazer isso, poderia ser usado o mesmo modelo da resposta (AjaxConsequence.DEFAULT_CHARSET)
Poderia ter então um: Controller.DEFAULT_CHARSET ou Input.DEFAULT_CHARSET, dando assim liberdade poder configurar.
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 09:04:25
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
É verdade,
O que acha Serjão?
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 09:30:25
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Acho uma boa, pode fazer! Tomando cuidado para deixar tudo backwards compatible...
-Sergio
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 10:59:58
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
In SVN.
Code:
Index: Controller.java
===================================================================
--- Controller.java (revision 1253)
+++ Controller.java (working copy)
@@ -88,7 +88,14 @@
private static final String STICKY_KEY = "_stickyActions";
private static final String[] APP_MGR_NAMES = { "ApplicationManager", "AppMgr", "AppManager" };
+
+
+ /**
+ * Default charset for input.getStringValue and getStringValues
+ */
+ public static String DEFAULT_CHARSET = null;
+
/**
* Initialize the Controller, creating and starting the ApplicationManager.
*
Code:
Index: RequestInput.java
===================================================================
--- RequestInput.java (revision 1253)
+++ RequestInput.java (working copy)
@@ -19,6 +19,7 @@
package org.mentawai.core;
import java.lang.reflect.Method;
+import java.nio.charset.Charset;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -195,8 +196,20 @@
* If the parameter is not a String, its toString() method is called.
*/
public String getStringValue(String name) {
+
Object o = map.get(name);
- return (o != null ? o.toString() : null);
+
+ if( o == null ) {
+ return null;
+
+ } else {
+ return ( Controller.DEFAULT_CHARSET == null ?
+ o.toString()
+ :
+ new String( o.toString().getBytes(), Charset.forName( Controller.DEFAULT_CHARSET )) );
+
+ }
+
}
/**
@@ -208,12 +221,20 @@
Object obj = map.get(name);
if (obj == null)
return null;
+
if (obj instanceof String[]) {
return (String[]) obj;
+
} else if (obj instanceof String) {
String[] s = new String[1];
- s[0] = (String) obj;
+
+ s[0] = ( Controller.DEFAULT_CHARSET == null ?
+ obj.toString()
+ :
+ new String( obj.toString().getBytes(), Charset.forName( Controller.DEFAULT_CHARSET )) );
+
return s;
+
}
throw new InputException("Error trying to get a String []: " + name);
}
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 11:16:52
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Parece certinho. Já comitou ?
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 13:04:25
|
robertwgil
Joined: 23/02/2007 17:22:13
Messages: 745
Location: São Paulo - SP - Brasil
Offline
|
Sim.
|
Robert Gil
Coordenador de Desenvolvimento / Administrador de Redes.
Twitter |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 13:32:58
|
IceW0lf
![[Avatar]](/images/avatar/7cbbc409ec990f19c78c75bd1e06f215.jpg)
Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline
|
Tava falando sobre isso com o Diego hj.... isso ja esta no beta ?
|
Leiber Wallace
Voixy ::: Soluções em Telecomunicações |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/10/2008 14:15:56
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Já está no beta...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/10/2008 11:40:59
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Opa só uma pequena dica. ACHO que isso ficaria melhor: Input.DEFAULT_CHARSET
Por que ?
Por eu estou querendo mudar a codificação do Input não é ? Se eu colocar isso no Controller vai dar a impressão que é a codificação geral, entrada e saida... ne verdade ?
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/10/2008 15:01:44
|
saoj
Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline
|
Mudei para o Input conforme sugestão...
No beta...
|
Sergio Oliveira
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/10/2008 15:18:15
|
ricardojlrufino
![[Avatar]](/images/avatar/a760880003e7ddedfef56acb3b09697f.jpg)
Joined: 30/03/2008 20:07:28
Messages: 227
Location: Teresina PI
Offline
|
Valeu serjão ... desculpa pelo incomodo ... hehehe
|
Ricardo JL Rufino <ricardo.jl.rufino@gmail.com> < UNYK > :: Q4Soft :: Teresina - PI
"Existe apenas um bem, o saber, e apenas um mal, a ignorância" - Sócrates
"Devemos julgar um homem mais pelas suas perguntas que pelas respostas" - Voltaire
Mentawai Developer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/10/2008 07:02:54
|
IceW0lf
![[Avatar]](/images/avatar/7cbbc409ec990f19c78c75bd1e06f215.jpg)
Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline
|
Então....
Como que ficou o uso do indivíduo?
|
Leiber Wallace
Voixy ::: Soluções em Telecomunicações |
|
|
 |
|
|