2010-11-12 21 views
1

Je télécharge le fichier HTML dans DB comme byte [] dans la colonne blob, et dans une autre partie je dois récupérer ce fichier et afficher dans textarea, je suis en mesure de récupérer de DB comme octets et le convertir en chaîne, mais lors de l'affichage de ses spectacles en format crypté.Convertit octet [] en String pour le fichier HTML

Ceci est l'application des entretoises:

Ceci est mon jsp:

<tr> 
<td colspan="3" class="searchinput"> 
     <html:textarea property="template" cols="100" rows="10" name="sendEmailForm"> 
     </html:textarea> 
</td> 
</tr> 

Ceci est ma forme haricot:

private String template = null; 
public String getTemplate() { 
    return template; 
} 

public void setTemplate(String template) { 
    this.template = template; 
} 

Ceci est mon haricot:

private byte[] templateContent = null; 

public String getHtmlTemplateContent() { 
    return templateContent.toString(); 
} 

public byte[] getTemplateContent() { 
    return templateContent; 
} 

public void setTemplateContent(byte[] templateContent) { 
    this.templateContent = templateContent; 
} 

public void setTemplateContent(Object templateContent) { 
    this.templateContent = (byte[])templateContent; 
} 

Ceci est mon action:

templatesDataBean = (TemplatesDataBean)SendEmailManager.getTemplate(action, actor, sendEmailBean); 
sendEmailForm.setTemplate(new String(templatesDataBean.getHtmlTemplateContent())); 

Comment cela peut-il être résolu? Merci d'avance.

+0

Est-ce la possibilité de codage peut-être? –

+0

Qu'entendez-vous par "chiffrer les données"? –

+0

Pourquoi en avez-vous besoin comme octet [] en premier lieu? Si c'est du HTML, une chaîne normale devrait fonctionner tout le chemin. Ou votre DB ne supporte-t-il pas la chaîne de stockage dans la base de données? ;) –

Répondre

2

Cela ressemble à escapeXML problème. Par défaut, il s'agit de true. Je n'ai rien trouvé pour Classic Struts. BTW, il y a un attribute dans Struts2 nommé escape pour l'élément <s:property>. Cependant, vous pouvez réaliser cela en utilisant JSTL.

<tr> 
<td colspan="3" class="searchinput"> 
     <textarea cols="100" rows="10"> 
      <c:out value="${sendEmailForm.template}" escapeXml="false"/> 
     </textarea> 
</td> 
</tr> 

Et je crois, même cela devrait aussi fonctionner comme charme.

<tr> 
<td colspan="3" class="searchinput"> 
     <textarea cols="100" rows="10"> 
      ${sendEmailForm.template} 
     </textarea> 
</td> 
</tr> 

Dans le cas où il est une question d'encodage, essayez instanciation votre String en utilisant ce constructeur.

new String(templatesDataBean.getHtmlTemplateContent(), Charset.UTF-8)