Chamando método java em js

2 respostas
F

Boa tarde a todos.

Eu criei uma classe que uso para internacionalização de outras classes que tenho em meu sistema.
Mas gostaria de usá-la também em arquivos js.
Quando chamo o método em um js o mesmo é encontrado, porém e resposta que tenho é undefined.
Quando fiz um debug percebi que o js continua a excução sem antes o médoto ter terminado.

Se alguém puder me ajudar.

O código da classe segue abaixo.

package idiomas; 

import java.util.Locale;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;

import org.directwebremoting.WebContextFactory;
import org.directwebremoting.annotations.Param;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.directwebremoting.annotations.ScriptScope;
import org.directwebremoting.spring.SpringCreator;



/* 
 * publicando classe no DWR
 * Lembre de declarar esta classe no arquivo dentro de
 * WEB-INF/dispatcher-servlet.xml
 */
/**
 * @author fabio
 *
 */
@RemoteProxy( 
		creator = SpringCreator.class,
		creatorParams = @Param(name = "beanName" /* padrão */, value = "Idioma" /* nome da classe declarada no spring*/),
		name = "Idioma", /* nome do arquivo .js a ser gerado */
		scope = ScriptScope.SESSION /* padrão */
)
public class Idioma {
	
	@RemoteMethod /* Disponibilizando o método via DWR */
	public static Locale getIdiomaSelecionado() {
		HttpServletRequest req = WebContextFactory.get().getHttpServletRequest();       
        return (Locale) req.getSession().getAttribute("javax.servlet.jsp.jstl.fmt.locale.session");
	}

	@RemoteMethod /* Disponibilizando o método via DWR */
	public static String mensagemAviso(String chave){		
		ResourceBundle labels = ResourceBundle.getBundle("messages", getIdiomaSelecionado());
			String value = labels.getString(chave);
			if (value == null || value == "")
				value = "Chave não encontrada";
		return value;
	}
}

A forma como chamei o método na js.

alert(Idioma.mensagemAviso("alerta.excluirRegistro"));

Obrigado desde já.

2 Respostas

Metaleiro

Chamando metodo de uma Classe java - dentro de um arquivo javascript (js)

F

Eu olhei esse tópico e não é o mesmo problema…

Quando eu chamo o método em um arquivo java ele funciona normalmente.

O problema é quando chamo esse método em um js ele funciona, mas não termina de relalizar o que deve fazer e o código js continua sem a resposta, ou seja, não retorna o valor.

Não da dando erro, ele encontra a classe.

Eu andei vendo alguma coisa sobre o java ser executado no servidor enquanto o javascript está sendo executado do lado do usuário e por isso acontece esse problema. Somente não encontrei como resolver isso.

Criado 21 de julho de 2009
Ultima resposta 21 de jul. de 2009
Respostas 2
Participantes 2