spring+struts2+freemarker整合

来源:互联网 发布:mmd动作数据下载网站 编辑:程序博客网 时间:2024/05/17 21:06

废话就不多说了,直接上代码:

addStudent.ftl文件:

<#assign path="${request.getContextPath()}"> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@include file="/shar/taglib.jsp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>河北大学校友会</title><script type="text/javascript" src="../js/jquery-easyui-1.3.1/jquery-1.8.0.min.js"></script><script type="text/javascript" src="../js/jquery.validate.js"></script><script type="text/javascript" src="../js/jquery-easyui-1.3.1/jquery.easyui.min.js"></script><link rel="stylesheet" href="../js/jquery-easyui-1.3.1/themes/icon.css" type="text/css"></link><link rel="stylesheet" href="../js/jquery-easyui-1.3.1/themes/default/easyui.css" type="text/css"></link><script type="text/javascript" src="../js/jquery-easyui-1.3.1/locale/easyui-lang-zh_CN.js"></script><link rel="stylesheet" href="../css/common.css" type="text/css" /><script type="text/javascript">$(document).ready(function() {$("#form1").validate({rules : {"stu.name" : {required : true},"stu.email" : {required : true,email : true}},messages : {"stu.name": {required : "姓名不能为空"},"stu.email" : {required : "请输入email地址",email : "请输入正确的email地址"}}});});</script></head><body bgcolor="F0F3F5"><div id="man_zone"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">  <tr>    <td height="30"><table width="100%" border="0" cellspacing="0" cellpadding="0">      <tr>        <td height="24" bgcolor="#353c44"><table width="100%" border="0" cellspacing="0" cellpadding="0">          <tr>            <td><table width="100%" border="0" cellspacing="0" cellpadding="0">              <tr>                <td width="6%" height="19" valign="bottom" bgcolor="#353c44"><div align="center"><img src="../images/tb.gif" width="14" height="14" /></div></td>                <td width="94%" valign="bottom" bgcolor="#353c44"><span class="STYLE1"> 校友信息添加</span></td>              </tr>            </table></td>          </tr>        </table></td>      </tr>    </table></td>  </tr>  <tr>    <td><fieldset>    <form action="studentAction!addStu.action" method="post" id="form1">    <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="355B70" bordercolor="#0000FF" >      <tr >        <td width="20%">姓    名:</td><td width="30%" ><input type="text" name="stu.name" id="name" value="" /></td><td width="20%">性    别:</td><td width="30%"><span> <select name="stu.sex" style="width:156px"><option value="">------------请选择------------</option><option value="男">男</option><option value="女">女</option></select> </span></td>      </tr>  <tr bgcolor="EEF2FB">    <td width="20%" >出生年月:</td><td width="30%" ><span id="servernet"><input type="text" name="stu.birthday" class="easyui-datebox" style="width:156px"/></span></td><td width="20%" >籍    贯:</td><td width="30%" ><span id="server_name"> <select name="stu.nativePlace" style="width:156px"><option value="">------------请选择------------</option><#list list2 as list2><option value="${list2.name }">${list2.name }</option></#list></select> </span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >工作单位:</td><td width="30%" ><span id="LbdwTotalPageFile"><input type="text"name="stu.placeOfWork"/></span></td><td width="20%" >政治面貌:</td><td width="30%" ><span id="serversoft"> <select name="stu.politicsStatus" style="width:156px"><option value="">------------请选择------------</option><#list list6 as list6><option value="${list6.name }">${list6.name }</option></#list></select> </span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >通讯地址:</td><td width="30%" ><span id="LbdwTotalVirtual"><input type="text" name="stu.address"></span></td><td width="20%" >职称职务:</td><td width="30%"><span id="LbdwAvailPageFile"><input type="text" name="stu.job"/></span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >办公电话:</td><td width="30%"><span id="serverarea"><input type="text"name="stu.officePhoneNum"/></span></td><td width="20%" >学历层次:</td><td width="30%"><span id="aspnetcpu"> <select name="stu.degreeLevel" style="width:156px"><option value="">------------请选择------------</option><#list list5 as list5><option value="${list5.name }">${list5.name }</option></#list></select> </span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >手    机:</td><td width="30%" ><span id="serveraccess"><input type="text" name="stu.mobilePhoneNum"/></span></td><td width="20%" >行政级别:</td><td width="30%" ><span id="LbdwTotalPhys"> <select name="stu.administrativeLevel" style="width:156px"><option value="">------------请选择------------</option><#list list4 as list4><option value="${list4.name }">${list4.name }</option></#list></select> </span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >所学专业:</td><td width="30%"><span id="LbdwAvailPhys"><input type="text" name="stu.major"></span></td><td width="20%" >是否在职:</td><td width="30%"><span id="serverip"> <select id="selectDemo" name="stu.beOnTheJob"  style="width:156px"><option value="">------------请选择------------</option><option value="是">是</option><option value="否">否</option></select></span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >邮政编码:</td><td width="30%"><span id="cpuc"><input type="text" name="stu.postalcode"></span></td><td width="20%" >毕业院系:</td><td width="30%"><span id="aspnetn"> <select name="stu.graduatedDep" style="width:156px"><option value="">------------请选择------------</option><#list list1 as list1><option value="${list1.depName }">${list1.depName }</option></#list></select> </span></td></tr><tr bgcolor="EEF2FB"><td width="20%" >电子信箱:</td><td width="30%"><span id="cputype"><input type="text" name="stu.email" id = "email"/></span></td><td width="20%" >添加信息:</td><td width="30%"><span id="serveraccess"><img src="${path}/images/add-row.gif"/> <input type="submit" value="添加"/></span></td></tr>    </table>    </form>    </fieldset></td>  </tr></table></div></body></html>


struts2和spring的配置很简单,这里就不多说了。

 

service中生成html文件的方法:

* *  * templatePath存放模板的目录 * targetHtmlPath存放生成html的目录 * ftl所需的模板文件 * fileName生成html文件的名称 * */@Overridepublic void createHtml(ServletContext context, Map<Object, Object> data,String templatePath,String targetHtmlPath,String ftl,String fileName) {Configuration cf = new Configuration();cf.setServletContextForTemplateLoading(context, templatePath);cf.setEncoding(Locale.getDefault(), "utf-8");Template template = null;try {template = cf.getTemplate(ftl);} catch (IOException e) {e.printStackTrace();}template.setEncoding("utf-8");String path = context.getRealPath(targetHtmlPath);String htmlFilePath = path +"/"+ fileName;File file = new File(htmlFilePath);try {Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"utf-8"));template.process(data, out);} catch (Exception e) {e.printStackTrace();}}


action中代码:

public String add() {list1 = otherService.searchXueyuan();list2 = otherService.searchPlace();list3 = otherService.searchMinzu();list4 = otherService.searchStulevel();list5 = otherService.searchDegreelevel();list6 = otherService.searchPolitics();Map<Object, Object> data = new HashMap<Object,Object>();data.put("list1", list1);data.put("list2", list2);data.put("list3", list3);data.put("list4", list4);data.put("list5", list5);data.put("list6", list6);//用于解决生成的html文件导入图片、js等不能显示的问题,需要在前台获得request.getContextPathdata.put("request", ServletActionContext.getRequest());otherService.createHtml(ServletActionContext.getServletContext(), data, "/templates/ftl", "/templates/html", "addStudent.ftl", "addStudent.html");return "add";}


跳转路径则为生成的html的路径。

 

对于生成的html文件不能正常显示图片,在网上搜了一下,需要在ftl模板文件中加入:

<#assign path="${request.getContextPath()}">


然后在图片的引用路径上加上path:

<td width="30%"><span id="serveraccess"><img src="${path}/images/add-row.gif"/> <input type="submit" value="添加"/></span></td>


 

 

原创粉丝点击