后面是关键的东西也就是需要把查询的LIST.JSP页面生成HTML 了。
需要用的是一个IO流写入。
显示数据:
下面我们来看下生成HTML的方法:
至于 HTML的模板 和网上很多资料写的一样。
大家可以查看下,如果有需要留言给我。
需要用的是一个IO流写入。
显示数据:
public ActionForward list(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserDao dao=new DaoImp();
int pageCount = 4;//设置页数
// pages
int pages = dao.getPages(pageCount);
List<Log4j> all=new ArrayList();
for(int i =0;i<pages;i++){
all=dao.listall(pageCount,pageCount*i-i,pageCount);
creatHtml(request, all, i);
}
request.setAttribute("list", all);
return mapping.findForward("suce");
}
下面我们来看下生成HTML的方法:
protected void creatHtml(HttpServletRequest request, List<Log4j> all,int pages)
throws FileNotFoundException, IOException {
//------生成HTML-------------------------------
//截取模板,替换
final String beginForHtmlTag = "<###for###>";
final String endForHtmlTag = "</###for###>";
String filePath = "";
filePath = request.getRealPath("/")+"template.html";//取到模板
/******** begin ************/
FileInputStream input = new FileInputStream(filePath);
int length = input.available();
byte[] b = new byte[length];
input.read(b);
//读取模板信息后
String result = new String(b);
int beginIndex = result.indexOf(beginForHtmlTag);
int endIndex = result.indexOf(endForHtmlTag);
String begin = result.substring(0, beginIndex);
String end = result.substring(endIndex+endForHtmlTag.length());
String table = result.substring(beginIndex+beginForHtmlTag.length(), endIndex);
// String content = new String("");
StringBuilder content=new StringBuilder();
for(Log4j log4j:all) {
String temp = table.replace("###username###",log4j.getUsername());
temp = temp.replace("###classs###",log4j.getClasss());
temp = temp.replace("###method###",log4j.getMethod());
temp = temp.replace("###leve###",log4j.getLogLevel());
temp = temp.replace("###mess###",log4j.getMessage());
temp = temp.replace("###titme###",log4j.getCreateTime());
// content += temp;
content.append(temp);
}
result = begin + content+"<br />all pages:"+pages + end;
/******** end ************/
以上是替换。这里会有事先上下页的功能,后期会加进去,大家期待。
// 根据时间得文件名
Calendar calendar = Calendar.getInstance();
String fileame = String.valueOf(calendar.getTimeInMillis()) +".html";
// String fileame ="a.html";
fileame = request.getRealPath("/")+fileame;//生成的html文件保存路径
FileOutputStream fileoutputstream = new FileOutputStream(fileame);//建立文件输出流
byte tag_bytes[] = result.getBytes();
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
}
至于 HTML的模板 和网上很多资料写的一样。
大家可以查看下,如果有需要留言给我。