1. 程式人生 > >ssm專案後臺向前臺傳入list資料

ssm專案後臺向前臺傳入list資料

增加將MySQL資料庫中的資料,使用list取出,並傳入jsp直接使用

xml檔案:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sy.dao.SensorDao">
	<!-- 目的:為DAO介面方法提供sql語句配置 -->
	<!-- 查詢日期 -->
	<select id="selectNewDate" resultType="String">
		SELECT MAX(DATE) FROM sensordata
	</select>
	<!-- 查詢最新日期的資料 -->
	<resultMap id="SensorList" type="com.sy.entity.Sensor">
        <id column="id" property="id"></id>
        <result column="sensorType" property="sensorType"></result>
        <result column="sensorAddress" property="sensorAddress"></result>
        <result column="frontData" property="frontData"></result>
        <result column="backData" property="backData"></result>
        <result column="date" property="date"></result>
    </resultMap>

    <select id="searchList" parameterType="String" resultMap="SensorList">

        SELECT * FROM sensordata WHERE DATE = #{date}

    </select>
		
</mapper>	

entity類:

package com.sy.entity;

public class Sensor {
	
	private int id;
	private int sensorType;
	private int sensorAddress;
	private double frontData;
	private double backData;
	private String date;
        
        get()/set()...
        toString()...

}

dao層:

package com.sy.dao;

import java.util.List;

import com.sy.entity.Sensor;

public interface SensorDao {
	
	/**
	 * 返回最新日期
	 * @return
	 */
	String selectNewDate();
	/**
	 * 查詢最新日期的資料列表
	 * @return list
	 */
	List<Sensor> searchList(String date);
}

service:

package com.sy.service.Impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sy.dao.SensorDao;
import com.sy.entity.Sensor;
import com.sy.service.SensorService;

@Service
public class SensorServiceImpl implements SensorService{

	@Autowired
	private SensorDao sensorDao;
	

	@Override
	public List<Sensor> search(String date) {
		// TODO Auto-generated method stub
		List<Sensor> list = sensorDao.searchList(date);
		return list;
	}


	@Override
	public String newDate() {
		// TODO Auto-generated method stub
		String date = sensorDao.selectNewDate();
		return date;
	}
}

controller:

package com.sy.controller;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;

import com.sy.entity.Sensor;
import com.sy.service.SensorService;

@Controller
@RequestMapping("/data")

public class TableController {
	
	@Autowired
	private SensorService sensorService;
	
	//正常訪問頁面
	@RequestMapping("/table")
	public String login(Model model){
		String date = sensorService.newDate();//獲取最新資料的日期
		//System.out.println("date:"+date);
		List<Sensor> list = sensorService.search(date);//根據日期查詢所有資料
		/*for(int i = 0;i<list.size();i++){
			System.out.println("List:"+list.get(i));
		}*/
		model.addAttribute("sensor", list);
		return "table";
	}
}

jsp頁面關鍵程式碼:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.List"%>
<html lang="en">
	<head>
    	<meta charset="utf-8">
	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
	    <meta name="viewport" content="width=device-width, initial-scale=1">
	    <base href="<%=basePath%>">
	    <title>Admin - Table</title>

        <!-- ... ... 省略一些css -->
        </head>	

        <body>
            <div>整個list集合:${sensor}</div>
	    <div>list集合大小:${sensor.size()}</div>
	    <div>第一行全部資料:${sensor[0]}</div>
	    <div>第一行的某一個數據:${sensor[0].id}</div>
        </body>