Springboot integra jsp para realizar el mapa de ruta de la estación de autobuses

Este artículo presenta principalmente los pasos de springboot integrando jsp y realizando el mapa de ruta de la estación de autobuses para ayudar a todos a comprender y usar mejor el marco de springboot. Los amigos interesados ​​pueden aprender sobre él.

Entorno de desarrollo:

  1. jdk 8
  2. idea de intellij
  3. tomcat 8
  4. mysql 5.7
  5. maven 3.6

Tecnología utilizada:

  • springboot

  • jsp

  • Inicialización estática de datos

Introducción al proyecto

Use springboot para integrar jsp, escriba el nombre de la ruta del autobús y el sitio detallado en el back-end, y consulte contenido específico en la página del front-end, como la ruta del autobús, el nombre del autobús, la información del autobús, etc.

resultado de ejecución

Cliente de primer plano:

  • Selección de ruta

image.png

  • Detalles de ruta

image.png

preparación de datos:

BusData.txt

image.png

Listo para trabajar:

Pom.xml agrega soporte para el motor de plantillas jsp:

<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <scope>provided</scope>
</dependency>

configuración de springboot jsp

spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

Código importante:
inicialización de datos de bus

@PostConstruct
private void initBusData(){
  try{
    File file = new File(BusMap.getClass().getResource("/").getPath());
    FileReader fileReader = new FileReader(file.getPath()+"/static/BusData.txt","GBK"); //初始化BusData.txt 数据
    List<String> readLines = fileReader.readLines();
    for(String str:readLines){
      if(!"".equals(str)){
        String[] data=str.split("#");
        String way=data[0];     //几路线
        String location=data[1];/  /地名
        String[] locations=location.split(",");
        List<Bus> list=new ArrayList<>();
        for(int i=0;i<locations.length;i++){
          int busnum=0;
          if(i%4==0){        //随机busnum
            busnum=1;
          }if(i%5==0){
            busnum=2;
          }
          Bus bus=new Bus(locations[i],busnum);
          list.add(bus);
        }
        WayList.add(way);      //添加路线
        BusMap.put(way,list);    //添加车站
      }
    }
  }catch (Exception e){
    e.printStackTrace();
  }
}

Consulta de ruta

@RequestMapping("/way")
public String search(HttpServletRequest request,String way) {
  try {
     if(null==way||"".equalsIgnoreCase(way)){
       request.setAttribute("list", BusMap.WayList); //没有搜索默认显示所有路线
       return "way";
     }else{
       List<String> wayList=new ArrayList<>();
       //模糊查询路线
       for(String str:BusMap.WayList){
         if(str.indexOf(way)>-1){
           wayList.add(str);
         }
       }
       if(wayList.size()>0){
         request.setAttribute("list", wayList); //模糊搜索出来的路线列表
         return "way";
       }else{
         return "noView"; //没有所选路线
       }
     }
  } catch (Exception e) {
    e.printStackTrace();
  }
  return "way";
}

## Visualización de la estación de ruta de autobús

@RequestMapping("/view")
public String view(HttpServletRequest request,String way) {
  try {
    List<Bus> list= BusMap.getBusMap(way);
    if(list.size()>0){
      request.setAttribute("list",list ); //获取总路线
      request.setAttribute("firstBus", list.get(0).getLocation());       //第一站
      request.setAttribute("lastBus", list.get(list.size()-1).getLocation()); //最后一站
      int size = list.size();
      size =(size-1)*99;
      request.setAttribute("size",size);
      return "view";
    }
  } catch (Exception e) {
    e.printStackTrace();
  }
  return "noView";//没有对应公交车站
}
//前端页面数据渲染
<div class="pageContent" style="background: #eeeeee;">
  <div class="pageFormContent" layoutH="55">
    <div class="timeText">${firstBus}<----->${lastBus}
      <span>( 首/末班车时间:<span style="color: red">6:00 / 23:00</span>)</span>
    </div>
    <div class="timezone" style="margin-top: 20px">
      <c:forEach var="list" items="${list}" varStatus="s">
        <div class="time" <c:if test="${s.index!=0}"> style="top: ${s.index*100+25}px;" a="1" </c:if> ><a onclick="javascript:alert(1);">${s.index+1}</a>
          <h2>${list.location}</h2>
          <c:if test="${list.busNum>0}">
            <span class="timezone3"></span>
            <div>
              <p><span style="padding-left: 30px;">${list.busNum}辆公交</span></p>
            </div>
          </c:if>
        </div>
      </c:forEach>
    </div>
  </div>
  <div class="formBar"></div>
</div>

resumen del proyecto

1. Es mejor no traer la ruta china en la ruta de almacenamiento del proyecto; de lo contrario, puede haber una falla de inicialización del recurso busData estático
. 2. El tiempo de la ruta de la estación de tiempo de la página se muestra en el modo de eje de tiempo, y la longitud es dinámicamente Algunos navegadores pueden mostrar un poco de desalineación
3. Otras funciones de iteración posteriores Desarrollo de seguimiento, estad atentos

Las últimas preguntas de entrevistas de alta frecuencia recopiladas en 2021 (todas organizadas en documentos), hay una gran cantidad de productos secos, incluidos mysql, netty, spring, thread, spring cloud, jvm, código fuente, algoritmo y otras explicaciones detalladas. también planes de aprendizaje detallados y entrevistas. Preguntas, etc., amigos que necesitan obtener este contenido, por favor agregue Q Junyang: 547998459

Supongo que te gusta

Origin blog.csdn.net/p1830095583/article/details/114877533
Recomendado
Clasificación