записать содержимое файла в jsp - PullRequest
0 голосов
/ 22 июля 2011

Я хотел бы записать содержимое (текстового) файла в JSP.Я сделаю это из тега. Каков наилучший способ получить содержимое файла и записать объект, созданный вызовом "pageContext.getOut ()" из моего тега?

Я спрашиваю, как яя не уверен в различных читателях, писателях и буферах и т. д.

Ответы [ 4 ]

3 голосов
/ 22 июля 2011

Попробуйте Commons-IO: http://commons.apache.org/io/api-release/index.html?org/apache/commons/io/package-summary.html

И один из его методов copy().

IOUtils.copy( 
   new FileInputStream( new File(...) ), 
   pageContext.getResponse().getOutputStream() 
);
2 голосов
/ 22 июля 2011

Вы можете использовать библиотеку apache commons-io . У него есть служебный метод для получения содержимого файла в виде строки:

String contents = FileUtils.readFileToString(new File("somefile.txt"));

Внимание - Этот удобный метод предназначен только для небольших файлов. Если файл большой, то необходим подход streaming (когда вы записываете байты в выходной поток по мере их чтения из файла)

1 голос
/ 22 июля 2011

Если вы не хотите использовать скриптлеты, вы можете создать класс функций, аналогичный функциям JSTL, который предоставляет статический метод для этого.Затем используйте выражение для чтения файла.

Пример:

package your.pkg

public class FileAccess {
  public static String readTxtFile( String filename )  {
     return FileUtils.readFileToString(new File(filename)); //used Bohemian's suggestion here :)
  }
}

В вашем файле taglib у вас будет такая запись:

<function>
  <name>readTxtFile</name>
  <function-class>
    your.pkg.FileAccess 
  </function-class>
  <function-signature>
    java.lang.String readTxtFile( java.lang.String )
  </function-signature>
</function>

И, наконец, в вашем файлеJSP:

<%@taglib prefix="f" uri="your taglib uri" %>

${f:readTxtFile( 'path/to/myfile.txt' )} //reads the file and writes the return value to the JSP
0 голосов
/ 22 июля 2011

Вы можете просто сделать;

<jsp:include page="myfile.txt">

Не требуется никаких читателей / писателей / буферов и т. Д.

...