내보낼 Word를 xml 형식의 파일로 저장한 후 xml을 열고 freemarker 태그를 추가한 후 outChairDoc.ftl 파일로 저장합니다.
첫 번째 단계는 Freemarker.jar 패키지를 추가하는 것입니다.
서블릿 코드는 다음과 같습니다. cn.skyclass.jiaowu.freemarker.template 패키지 아래에 outChairDoc.ftl을 넣습니다.
public void doGet(HttpServletRequest request, HttpServletResponse response)
< p> throws ServletException, IOException {구성 = 새 Configuration();
configuration.setDefaultEncoding("utf-8");
try {
p>createDoc(response);
} catch (예외 e) {
// TODO 자동 생성된 catch 블록
e.printStackTrace( );
}
}
public void createDoc(HttpServletResponse 응답)에서 예외가 발생합니다. {
// 채우기 템플릿 데이터 파일에서
지도 dataMap = new HashMap();
dataMap.put("docTitle", "fdfdfdfdfdfdfuser information");
List< ChairInfo> list = new ArrayList
ChairInfo ChairInfo = new ChairInfo();
ChairInfo.setChairTitle("dfdfd");
chairInfo.setTeacherName("tea");
chairInfo.setStartTime(new Date());
chairInfo.setPlace("dfdfd");
목록 .add (chairInfo);
dataMap.put("chairInfoList", list);
// 템플릿 장치 방법 및 경로를 설정합니다. FreeMarker는 다양한 템플릿 로딩 방법을 지원합니다.
서블릿, 클래스 경로 및 데이터베이스를 다시 로드할 수 있습니다.
// 여기서 템플릿은 com.havenliu.document.template 패키지 아래에 배치됩니다.
configuration.setClassForTemplateLoading(this.getClass() ,
"/cn/skyclass/jiaowu/freemarker/template");
템플릿 t = null;
시도해 보세요 {
// test.ftl은 로드할 템플릿입니다.
t =configuration.getTemplate("outChairDoc.ftl");
t.setEncoding("utf-8");< /p> p>
} catch (IOException e) {
e.printStackTrace();
}
// 출력 문서 경로 및 이름
String fileName="강의 목록.doc";
response.setContentType("application/msword");
response.addHeader("Content-Disposition ", " attachmentname=" + java.net.URLEncoder.encode(fileName, "UTF-8"));//내보낸 파일이 왜곡되는 것을 방지합니다.
response.setCharacterEncoding("utf-8 ");
PrintWriter out = response.getWriter();
t.process(dataMap, out);
out.close();
피>< 피>}