1,编辑word模板,得到想要的样式
2,word另存为,筛选过的网页(*.htm;*.html) 例如:word_model_02.htm
3,改word_model_02.htm后缀为.jsp
4,在jsp文件的最上部加上: (不加入下载不了)
5,页面中加入按钮,并用servlet实现页面跳转,
/servlet/DocumentHandleServlet?templateCode=/page/common/template/word/word_model_02.jsp
注:如果jsf项目可以利用js实现
form中加入
scrolling="no">
js如下
function downLoadWord(){
window.document.all("togo").src="/servlet/DocumentHandleServlet?templateCode=/page/common/template/word/word_model.jsp";
return false;
}
6,定义servlet,在web.xml中配置servlet
DocumentHandleServlet
com.nohi.document.servlet.DocumentHandleServlet
DocumentHandleServlet
/servlet/DocumentHandleServlet
public class DocumentHandleServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
private Logger log = Logger.getLogger(this.getClass());
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
log.debug("DocumentHandleServlet ..................");
String templateCode = req.getParameter("templateCode");
log.debug("templateCode: " + templateCode);
//templateCode = "/page/common/template/word/word_model.jsp";
//到数据库中取数。。。vo.getUserList()返回的是一个 User对象列表
UserManagerVO vo = new UserManagerVO();
UserManagerDao dao = (UserManagerDao) FrameServiceFactory.findBean("userManagerDao");
dao.findUserListByHQL(vo);
log.debug("size: " + vo.getUserList().size());
req.setAttribute("fileName", "fileName_nohi");
req.setAttribute("userList",vo.getUserList());
req.setAttribute("text", "abc");
req.setAttribute("date", "2011-04-05");
req.getRequestDispatcher(templateCode).forward(req, resp);
}
}
7,word_model_02.jsp中编辑取数
在正文加入
//文档名称:文档类型_广义业务编号_版本号_模板名称
String fileName = (String) request.getAttribute("fileName");
String text = (String) request.getAttribute("text");
String date = (String) request.getAttribute("date");
List list = (List) request.getAttribute("userList");
fileName = new String(fileName.getBytes("GBK"), "ISO8859_1");
response.setHeader("Content-Disposition", "attachment; filename="+ fileName + ".doc");
%>
文本:
日期:
for (Iterator it = list.iterator();it.hasNext();) {
User user = (User)it.next();
%>
style='width: 142.0pt; border: solid black 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt'>
style='width: 142.05pt; border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt'>
style='width: 142.05pt; border-top: none; border-left: none; border-bottom: solid black 1.0pt; border-right: solid black 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt'>
}
%>