Конвертировать byte [] в String для файла HTML - PullRequest
1 голос
/ 12 ноября 2010

Я загружаю HTML-файл в БД в виде байта [] в столбце BLOB-объектов, а в другой части мне нужно получить этот файл и отобразить его в textarea. Я могу извлечь из БД как байты и преобразовать его в строку, но когдаотображать свои шоу в зашифрованном формате.

Это приложение для Struts:

Это мой jsp:

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

Это мой компонент:

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

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

Это мой бин:

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;
}

Это мое действие:

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

Как это можно решить?Заранее спасибо.

1 Ответ

2 голосов
/ 12 ноября 2010

Похоже на escapeXML выпуск. По умолчанию это true. Я не мог ничего найти для классических стоек. Кстати, в Struts2 есть attribute с именем escape для <s:property> элемента. Однако вы можете добиться этого с помощью JSTL.

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

И я верю, что даже это должно работать как шарм.

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

В случае проблем с кодировкой попробуйте создать экземпляр String с помощью этого конструктора.

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