關於spring整合velocity之後的Jsoup爬資料使用fastjson的一些小問題

來源:互聯網
上載者:User

標籤:兩種   hot   handler   原因   nec   mod   star   method   插入   

1、匯入jar包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.zdf.jsoup</groupId>  <artifactId>ZdfJsoup</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>war</packaging>  <dependencies>  <dependency>  <groupId>org.jsoup</groupId>  <artifactId>jsoup</artifactId>  <version>1.11.2</version>  </dependency>  <dependency>  <groupId>com.alibaba</groupId>  <artifactId>fastjson</artifactId>  <version>1.2.45</version>  </dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-core</artifactId>  <version>4.3.8.RELEASE</version>  </dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-context</artifactId>  <version>4.3.8.RELEASE</version>  </dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-webmvc</artifactId>  <version>4.3.8.RELEASE</version>  </dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-context-support</artifactId>  <version>4.3.8.RELEASE</version>  </dependency>  <dependency>  <groupId>org.apache.velocity</groupId>  <artifactId>velocity</artifactId>  <version>1.6.3</version>  </dependency>  <dependency>  <groupId>org.apache.velocity</groupId>  <artifactId>velocity-tools</artifactId>  <version>2.0</version>  </dependency>  <dependency>  <groupId>log4j</groupId>  <artifactId>log4j</artifactId>  <version>1.2.11</version>  </dependency>  </dependencies></project>

  

2、代碼編寫

package com.zdf.jsoup;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.jsoup.Connection;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.alibaba.fastjson.JSON;import com.zdf.jsoup.domain.Ticket;@Controllerpublic class JsoupTest {@RequestMapping("/jsoupTest")public @ResponseBody List<Ticket> jsoupTest() {String url = "http://dynamic.12306.cn/otn/board/boardMore";Connection connect = Jsoup.connect(url);try {List<Ticket> arr = new ArrayList<Ticket>();Document document = connect.get();Element table = document.getElementById("table_board_more");Elements tr = table.getElementsByTag("tr");for (Element element : tr) {Element td = element.child(0);if (td.val().equals("上海")) {System.out.println("出發地:"+td.val()+"終點地:"+element.child(1).val());Ticket ticket = new Ticket();ticket.setStartPlace("上海");ticket.setEndPlace(element.child(1).val());arr.add(ticket);}}return arr;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}//跳轉頁面@RequestMapping("/")public String toVm() {return "velocity/ticket";}}

  犯的錯誤:

1、雖然匯入fastjson.jar但是沒有在web.xml中配置轉換,因此彙報No converter found for return value of type: class java.util.ArrayList

解決方案:

<!-- 處理器適配器 --><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><ref bean="mappingFastJsonHttpMessageConverter"/></list></property></bean><!-- 視圖解析器 --><!-- velocity解析器,替換掉原來的jsp --> <bean id="mappingFastJsonHttpMessageConverter"          class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">        <property name="supportedMediaTypes">            <list>                <value>application/json;charset=UTF-8</value>            </list>        </property>    </bean>

  2、剛開始使用jsp來表示頁面卻顯示的是源碼,原因就是自己配置的是velocity的視圖解析器,因此才會出現這個錯誤

解決方案:使用vm去匯入該檔案

兩種方式:使用#include(“ticket.jsp”)是當前位置插入整張ticket.jsp頁面,根據需要進行調整。

關於spring整合velocity之後的Jsoup爬資料使用fastjson的一些小問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.