需求:controller返回浏览器会渲染的html页面字符串
1.实现方式一
直接通过HttpServletResponse以流的方式将html字符串写到浏览器页面,注意设置Header,标志让浏览器以html方式处理。
PrintWriter pw =null;
response.setHeader("Content-Type","text/html;charset=UTF-8");try{
pw=response.getWriter();
pw.write(sbHtml.toString());
pw.flush();
}catch(IOException e) {
e.printStackTrace();
}finally{
pw.close();
}
2.实现方式二
1.设置springMVC实现,设置produces 标志浏览器处理类型。默认是json
@RequestMapping(value = "/getPage1", produces ={MediaType.TEXT_HTML_VALUE})
@ResponseBodypublicString getPage1(){
StringBuffer sbHtml= newStringBuffer();
sbHtml.append("
");sbHtml.append("
支付宝即时到账交易接口77312534");returnsbHtml.toString();}
2.在做返回json转化时,字符串默认会加上双引号,浏览器无法解析。需在spring-mvc.xml中做一下设置:
补充:
java后台操作html字符串并当作一个页面返回给浏览器
引入依赖包
org.jsoup
jsoup
1.10.3
后台代码如下
/*** 操作html字符串
*@paramrequest
*@paramresponse
*@throwsIOException*/@RequestMapping("WStoHtml")public void WStoHtml(HttpServletRequest request,HttpServletResponse response) throwsIOException{
String url= "http://localhost:8082/bim/static/form2/ApplicationFormTable.htm";
String body= HttpClientUtil.doPost(url);//body为获取的html代码//System.out.println(body);//System.out.println("11111");
Document doc =Jsoup.parse(body);
Elements es= doc.select("table");for(Element element : es) {
element.html("123");//将table的内容替换为123
}for(Element element : es) {
System.out.println(element.html());
}
System.out.println(doc.outerHtml());
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
out.println(doc.outerHtml());
}