springboot整合jsp,实现公交车站路线图
程序员文章站
2023-09-06 17:36:18
开发环境: jdk 8 intellij idea tomcat 8 mysql 5.7 maven 3.6 所用技术: springboot jsp 数据静态初始化 项目介绍...
开发环境:
- jdk 8
- intellij idea
- tomcat 8
- mysql 5.7
- maven 3.6
所用技术:
- springboot
- jsp
- 数据静态初始化
项目介绍
使用springboot整合jsp,在后端写入公交路线名称和详细站点,前端页面可条件查询具体的内容,如公交路线,公交名称,车俩信息等。
运行效果
前台用户端:
- 路线选择
- 路线详情
数据准备:
busdata.txt
准备工作:
pom.xml加入jsp模板引擎支持:
<dependency> <groupid>org.apache.tomcat.embed</groupid> <artifactid>tomcat-embed-jasper</artifactid> <scope>provided</scope> </dependency>
springboot配置jsp
spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp
重要代码:
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(); } }
路线查询
@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"; }
公交车路线站展示
@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>
项目总结
- 项目存放路径最好不要带中文路径,否则可能存在静态busdata资源初始化失败
- 页面时间车站路线所采用时间轴方式展示,长度动态计算,部分浏览器显示可能有点错位
- 其他后续迭代功能后续开发,敬请关注
以上就是springboot整合jsp,实现公交车站路线图的详细内容,更多关于springboot整合jsp的资料请关注其它相关文章!
下一篇: 如何解决vue与传统jquery插件冲突
推荐阅读
-
详解springboot整合ehcache实现缓存机制
-
springboot整合ehcache 实现支付超时限制的方法
-
SpringBoot整合MybatisPlus的简单教程实现(简单整合)
-
SpringBoot整合Elasticsearch7.2.0的实现方法
-
详解springboot整合ehcache实现缓存机制
-
SpringBoot2.0 整合 Shiro 框架,实现用户权限管理
-
SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理
-
springboot中jsp引用静态资源css,js的实现方法
-
MyEclipse下SpringBoot+JSP整合过程及踩坑
-
Springboot整合微信小程序实现登录与增删改查