SpringMvc返回html页面字符串

需求: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})
    @ResponseBody
    public String getPage1(){
        StringBuffer sbHtml = new StringBuffer();
        sbHtml.append("<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">");
        sbHtml.append("<title>支付宝即时到账交易接口</title></head><body>77312534</body></html>");
        return sbHtml.toString();
    }

2.在做返回json转化时,字符串默认会加上双引号,浏览器无法解析。需在spring-mvc.xml中做一下设置:

    <!--    增加配置,controller返回字符串去掉双引号-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
        </mvc:message-converters>
    </mvc:annotation-driven>

补充:

java后台操作html字符串并当作一个页面返回给浏览器

引入依赖包

<dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.10.3</version>
    </dependency>

后台代码如下

/**
     * 操作html字符串
     * @param request
     * @param response
     * @throws IOException
     */
    @RequestMapping("WStoHtml")
    public void WStoHtml(HttpServletRequest request,HttpServletResponse response) throws IOException{
        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());
    }
原文地址:https://www.cnblogs.com/xiejn/p/13972890.html