sexta-feira, 15 de agosto de 2008

FCKeditor com Struts 2 utilizando o tema ajax

Bom pessoal depois de um bom tempo longe volto a escrever novamente. Bem fazendo uma aplicação web utilizando o struts 2, precisei utilizar o famoso FCKeditor para criação e edição de conteúdo, porém, como estava utilizando o struts 2 com o tema ajax, percebi que o FCKeditor apresentava um problema em relação ao envio do seu conteúdo, pois quando mandava enviar ele não enviava o conteúdo atual do FCKeditor, ai começou o problema, depois muitas horas rodando na NET achei algumas soluções, então resolvi fazer este post para direcionar especificamente para o struts 2, pode não a melhor solução mas com certeza irá funcionar :D, então vamos para a solução.

Após a configuração do FCKeditor que você poderá encontrar como fazer no site do FCKeditor , eis a resolução do problema:

basta colocar esse javascript entre as head do seu projeto:

function FCKeditor() {
var oEditor = FCKeditorAPI.GetInstance("Nome_da_Instancia_do_FCKeditor");
conteudoFCK= oEditor.GetXHTML();
document.getElementById("Nome_da_Instancia_do_FCKeditor").value = conteudoFCK;

}

e no form ficará da seguinte forma:

s:form action="%{NOME_DA_ACTION}" onsubmit="FCKeditor()"

Quando o FCKeditor é renderizado na página, ele gera um campo input hidden com o mesmo nome da instância do FCKeditor, e gera um iframe que será carregado o FCKeditor, o problema é que com o tema ajax ativado no struts 2, o FCK não consegue passar o valor atual dele para o parâmetro, então o javascript acima irá dar essa forcinha ao FCK :D.

Espero ter ajudado com este post.

2 comentários:

Anônimo disse...

Só um problema...
como enviar html por post.
sabendo que o fckeditor trabalha com iso-8859-1, e caracteres especiais iniciam com '&' no html.
um simples espaço gera um código assim' ' que por sua vez, não da pra enviar por post

Anônimo disse...

é que aqui não saiu...mas estou falando do E comercial