• 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());
        }
  • 相关阅读:
    LeetCode具体分析 :: Recover Binary Search Tree [Tree]
    [leetcode] Path Sum
    System、应用程序进程的Binder线程池和Handler消息循环
    R(二): http与R脚本通讯环境安装
    R(一): R基础知识
    Hive(五):hive与hbase整合
    Hive(六):HQL DDL
    Hive(四):c#通过odbc访问hive
    Hive(三):SQuirrel连接hive配置
    Hive(二):windows hive ODBC 安装
  • 原文地址:https://www.cnblogs.com/xiejn/p/13972890.html
Copyright © 2020-2023  润新知