发表于: 2020-09-13 23:52:03

1 1338


今天完成的事:

thymeleaf把职业静态页面变成动态页面。

@RequestMapping("/profession")
public String profession(Model model){
List<Profession> professionList=professionService.selectAll();
   //建立一个开发类型集合
   List<String> devTypes=new ArrayList<>();
   //遍历职业表集合,把得到的开发类型单独拿出来添加到开发类型集合中
   for(Profession profession:professionList){
devTypes.add(profession.getDevType());
   }
//去除开发方向中重复的元素得到一个新集合,然后把新集合传到页面中。
   List<String> devTypes2=removeDuplicate(devTypes);
   model.addAttribute("devTypes",devTypes2);
   model.addAttribute("pros",professionList);
   return "profession";
}
<!--先遍历开发方向集合-->
<th:block th:each="devType,devStart:${devTypes}">
   <div class="caption">
       <h4 th:text="${devType}"></h4>
   </div>
   <div class="row">
       <!--再遍历整个职业,如果每个职业的开发方向等于外层的开发方向就输出-->
       <th:block th:each="pro,proStar:${pros}" th:if="${pro.devType eq devType}">
           <div class="col-md-4 col-sm-6 col-xs-12 top-margin">
               <div class="warp-border">
                   <div class="clearfix">
                       <div class="icon-people"><img th:src="@{|imges/${pro.image}|}"></div>
                       <div class="text">
                           <h4 th:text="${pro.professionName}"></h4>
                           <p class="text-present" th:text="${pro.direction}"></p>
                       </div>
                   </div>

遇到的问题:

本来想用跟jsp一样的思路来实现这个页面输出,像这样:

<%--1.需要用开发方向为传来每个职位分类--%>
   <%--2.所以先用c标签set一个var2为空值。--%>
<c:set value="" var="var2"/>
<%--遍历传来的数据做判断--%>
<c:forEach var="var" items="${pro}">
<%--如果传来的开发方向是否等于var2--%>
   <c:if test="${var.devType!=var2}">
<%--把开发方向赋值给var2--%>
       <c:set value="${var.devType}" var="var2"/>
<div class="caption">  
           <%--得到每个开发方向,作为标题--%>
           <h4>${var2}</h4>
       </div>
       <div class="row">
           <%--接下来判断传来的职位的开发方向是否等于上面的标题--%>
           <c:forEach var="pro" items="${pro}">
<c:if test="${pro.devType==var2}">
<div class="col-md-4 col-sm-6 col-xs-12 top-margin">
                   <div class="warp-border">
                       <div class="clearfix">
                           <div class="icon-people"><img src="${path}/${pro.image}"></div>
                           <div class="text">
                               <h4 class="">${pro.professionName}</h4>
                               <p class="text-present">${pro.direction}</p>
                           </div>
                       </div>

但是这个thymeleaf不可以像jsp一样c:set一个全局变量,所以不能通过判断var2的值输出对应开发方向下的职业,只能通过controller把开发方向单独拿出来,去除重复的元素后再传到页面中再进行遍历判断。

明天的计划:springCloud

收获:


返回列表 返回列表
评论

    分享到