master
王壕 3 years ago
parent b272217c86
commit ec30014e3a

@ -2,6 +2,18 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://127.0.0.1:9000</sonar.host.url>
</properties>
</profile>
</profiles>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>

@ -1,6 +1,7 @@
package com.example.demo.config; package com.example.demo.config;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@ -8,7 +9,13 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
public class MyMvcConfig implements WebMvcConfigurer { public class MyMvcConfig implements WebMvcConfigurer {
@Override @Override
public void addViewControllers(ViewControllerRegistry registry) { public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index"); registry.addViewController("/").setViewName("index");
registry.addViewController("/index.html").setViewName("index"); registry.addViewController("/index.html").setViewName("index");
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandleInterceptor()).addPathPatterns("/resource").excludePathPatterns("/index.html","dashboard","/","/login","/css/**","/js/**","/img/**");
} }
} }

@ -42,7 +42,7 @@ public class TaskuploadController {
@RequestParam(name = "skey", required = true) String skey, @RequestParam(name = "skey", required = true) String skey,
@RequestParam(name = "Task_id", required = true) Integer Taskid) { @RequestParam(name = "Task_id", required = true) Integer Taskid) {
//skey 查表 //skey 查表
System.out.println(skey);
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("skey", skey); queryWrapper.like("skey", skey);
User user = this.userMapper.selectOne(queryWrapper); User user = this.userMapper.selectOne(queryWrapper);
@ -103,9 +103,10 @@ public class TaskuploadController {
} }
@RequestMapping("/uploadDragon") @RequestMapping(value = "/uploadDragon",method = RequestMethod.POST)
public String uploaddragon(@RequestParam(name = "skey", required = true) String skey, public String uploaddragon(HttpServletRequest request,
@RequestParam(name = "dragonid", required = true) int dragonid, @RequestParam(name = "skey", required = true) String skey,
@RequestParam(name = "dragonid", required = true) Integer dragonid,
@RequestParam(name = "text", required = true) String text) { @RequestParam(name = "text", required = true) String text) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("skey", skey); queryWrapper.like("skey", skey);
@ -120,8 +121,10 @@ public class TaskuploadController {
dragonson.setStudentnumber(user.getStudentNumber()); dragonson.setStudentnumber(user.getStudentNumber());
this.dragonsonMapper.insert(dragonson); this.dragonsonMapper.insert(dragonson);
} }
dragonson.setText(text); System.out.println(text);
dragonson = this.dragonsonMapper.selectOne(queryWrapper1);
dragonson.setFinishtime(new Date()); dragonson.setFinishtime(new Date());
dragonson.setText(text);
this.dragonsonMapper.updateById(dragonson); this.dragonsonMapper.updateById(dragonson);
return "success"; return "success";

@ -21,10 +21,6 @@ import java.util.*;
@Tag(name = "真·用户接口", description = "用户登录,") @Tag(name = "真·用户接口", description = "用户登录,")
@RestController @RestController
public class UserController { public class UserController {
@RequestMapping("/index")
public String first() {
return "index";
}
@Autowired @Autowired
private UserMapper userMapper; private UserMapper userMapper;
@ -131,6 +127,7 @@ public class UserController {
@Operation(summary = "获取验证码") @Operation(summary = "获取验证码")
public String getrcode(@RequestParam(value = "skey", required = true) String skey) { public String getrcode(@RequestParam(value = "skey", required = true) String skey) {
Rcode rcode = this.rcodeMapper.selectById(skey); Rcode rcode = this.rcodeMapper.selectById(skey);
System.out.println(rcode);
String code = ""; String code = "";
if (rcode == null) { if (rcode == null) {
rcode = new Rcode(); rcode = new Rcode();

@ -184,6 +184,16 @@ public class Webcontroller {
List<Taskson> taskson=this.tasksonMapper.selectList(queryWrapper); List<Taskson> taskson=this.tasksonMapper.selectList(queryWrapper);
// System.out.println(taskson); // System.out.println(taskson);
/*
*/
int stunum_complete=taskson.size();
model.addAttribute("stunum_com",stunum_complete);
QueryWrapper<User>queryWrapper1 = new QueryWrapper<>();
queryWrapper1.select();
List<User> users=this.userMapper.selectList(queryWrapper1);
int stunum= users.size();
model.addAttribute("stunum",stunum);
model.addAttribute("taskdetail",taskson); model.addAttribute("taskdetail",taskson);
return "task/taskdetail"; return "task/taskdetail";
@ -203,10 +213,20 @@ public class Webcontroller {
*/ */
QueryWrapper<Dragonson>queryWrapper = new QueryWrapper<>(); QueryWrapper<Dragonson>queryWrapper = new QueryWrapper<>();
queryWrapper.select("task_id","studentnumber","finishtime","filepath").like("task_id", id); queryWrapper.select("dragon_id","studentnumber","finishtime","text").like("dragon_id", id);
List<Dragonson> groupson=this.dragonsonMapper.selectList(queryWrapper); List<Dragonson> groupson=this.dragonsonMapper.selectList(queryWrapper);
System.out.println(groupson); /*
*/
int stunum_complete=groupson.size();
model.addAttribute("stunum_com",stunum_complete);
QueryWrapper<User>queryWrapper1 = new QueryWrapper<>();
queryWrapper1.select();
List<User> users=this.userMapper.selectList(queryWrapper1);
int stunum= users.size();
model.addAttribute("stunum",stunum);
// System.out.println(groupson);
model.addAttribute("groupdetail",groupson); model.addAttribute("groupdetail",groupson);
return "task/groupdetail"; return "task/groupdetail";

@ -2,6 +2,7 @@ package com.example.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.common.ZipUtils;
import com.example.demo.domain.Dragonson; import com.example.demo.domain.Dragonson;
import com.example.demo.domain.User; import com.example.demo.domain.User;
import com.example.demo.mapper.DragonsonMapper; import com.example.demo.mapper.DragonsonMapper;
@ -10,6 +11,7 @@ import org.apache.poi.hssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@ -24,8 +26,8 @@ public class Webneed {
@Autowired @Autowired
DragonsonMapper dragonsonMapper; DragonsonMapper dragonsonMapper;
@GetMapping("/exceldownload") @GetMapping("/exceldownload/{id}")
public void download(HttpServletResponse response, @RequestParam(value = "dragonid", required = false) String dragonid) throws IOException { public void download(HttpServletResponse response, @PathVariable("id") String dragonid) throws IOException {
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("接龙情况"); HSSFSheet sheet = workbook.createSheet("接龙情况");
QueryWrapper<Dragonson> queryWrapper = new QueryWrapper<>(); QueryWrapper<Dragonson> queryWrapper = new QueryWrapper<>();
@ -64,9 +66,11 @@ public class Webneed {
return "daochu"; return "daochu";
} }
@RequestMapping("/filedownload") @RequestMapping("/filedownload/{id}")
public String downloadfile(@RequestParam(value = "taskid", required = true) String taskid, public String downloadfile(@PathVariable("id") String taskid,
HttpServletResponse response) throws UnsupportedEncodingException { HttpServletResponse response) throws UnsupportedEncodingException, FileNotFoundException {
FileOutputStream fos1 = new FileOutputStream(new File( taskid+".zip"));
ZipUtils.toZip("E:\\git\\project\\src\\demo\\target\\"+taskid, fos1, true);
File scFileDir = new File("./"); File scFileDir = new File("./");
String fileName = taskid + ".zip"; String fileName = taskid + ".zip";
File fileDir = new File(scFileDir, fileName); File fileDir = new File(scFileDir, fileName);
@ -90,9 +94,9 @@ public class Webneed {
os.write(buffer, 0, i); os.write(buffer, 0, i);
i = bis.read(buffer); i = bis.read(buffer);
} }
System.out.println("Download the song successfully!"); System.out.println("Download successfully!");
} catch (Exception e) { } catch (Exception e) {
System.out.println("Download the song failed!"); System.out.println("Download failed!");
} finally { } finally {
if (bis != null) { if (bis != null) {
try { try {

@ -1,6 +1,7 @@
package com.example.demo.domain; package com.example.demo.domain;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
@ -15,7 +16,7 @@ public class Dragonson extends Wrapper<Dragonson> {
/** /**
* id * id
*/ */
@TableField("id") @TableId("id")
private int id; private int id;
/** /**
* dragon_id * dragon_id

@ -1,9 +1,18 @@
package com.example.demo.domain; package com.example.demo.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Random; import java.util.Random;
@Data
@TableName("rcode")
public class Rcode { public class Rcode {
@TableField("code")
private String code; private String code;
@TableId
private String skey; private String skey;
public Rcode() { public Rcode() {

@ -48,7 +48,7 @@
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}"Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -44,7 +44,7 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<!-- <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>--> <a class="navbar-brand col-sm-3 col-md-2 mr-0" >admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
@ -64,6 +64,7 @@
<th>ID</th> <th>ID</th>
<th>学号</th> <th>学号</th>
<th>提交时间</th> <th>提交时间</th>
<th>完成人数</th>
<th>文件地址</th> <th>文件地址</th>
</tr> </tr>
@ -75,11 +76,12 @@
<form th:action="@{/totalgroupnote}" method="get"> <form th:action="@{/totalgroupnote}" method="get">
<td th:text="${item.Taskid}"></td> <td th:text="${item.dragonid}"></td>
<td th:text="${item.studentnumber}"></td> <td th:text="${item.studentnumber}"></td>
<td th:text="${item.finishtime}"></td> <td th:text="${item.finishtime}"></td>
<td th:text="${item.filepath}"></td> <td th:text="${stunum_com}+'/'+${stunum}"></td>
<td><a class="btn btn-sm btn-success"th:href="@{/exceldownload/}+${item.Taskid}">导出</a></td> <td th:text="${item.text}"></td>
<!-- <td><a class="btn btn-sm btn-success"th:href="@{/exceldownload/}+${item.id}">导出</a></td>-->

@ -44,7 +44,7 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<!-- <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>--> <a class="navbar-brand col-sm-3 col-md-2 mr-0" >admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">

@ -44,7 +44,7 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<!-- <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a>--> <a class="navbar-brand col-sm-3 col-md-2 mr-0" >admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">

@ -44,11 +44,11 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -44,11 +44,11 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>
@ -64,6 +64,7 @@
<th>ID</th> <th>ID</th>
<th>学号</th> <th>学号</th>
<th>提交时间</th> <th>提交时间</th>
<th>完成人数</th>
<th>文件地址</th> <th>文件地址</th>
</tr> </tr>
@ -77,6 +78,7 @@
<td th:text="${item.Taskid}"></td> <td th:text="${item.Taskid}"></td>
<td th:text="${item.studentnumber}"></td> <td th:text="${item.studentnumber}"></td>
<td th:text="${item.finishtime}"></td> <td th:text="${item.finishtime}"></td>
<td th:text="${stunum_com}+'/'+${stunum}"></td>
<td th:text="${item.filepath}"></td> <td th:text="${item.filepath}"></td>

@ -44,11 +44,11 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -44,11 +44,11 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>
@ -79,7 +79,7 @@
<td th:text="${item.status==0?'未完成':'已完成'}"></td> <td th:text="${item.status==0?'未完成':'已完成'}"></td>
<td th:text="${item.deadtime}"></td> <td th:text="${item.deadtime}"></td>
<td><a class="btn btn-sm btn-success"th:href="@{/filedownload/}+${item.id}">导出</a></td> <td><a class="btn btn-sm btn-success"th:href="@{/filedownload/}+${item.id}">导出</a></td>
<td><a class="btn btn-sm btn-primary"th:href="@{/item1/}+${item.id}">编辑</a></td> <td><a class="btn btn-sm btn-primary"th:href="@{/item1/}+${item.id}">详情</a></td>

@ -44,11 +44,11 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -44,11 +44,11 @@
<body> <body>
<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0"> <nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0">
<a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Company name</a> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">admin</a>
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" href="http://getbootstrap.com/docs/4.0/examples/dashboard/#">Sign out</a> <a class="nav-link"th:href="@{/index}" >Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -48,7 +48,7 @@
<input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search"> <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
<ul class="navbar-nav px-3"> <ul class="navbar-nav px-3">
<li class="nav-item text-nowrap"> <li class="nav-item text-nowrap">
<a class="nav-link" th:href="@{/index}"Sign out</a> <a class="nav-link" th:href="@{/index}">Sign out</a>
</li> </li>
</ul> </ul>
</nav> </nav>

@ -1 +0,0 @@
Subproject commit c802a4636d423dd3c5717ac8b0eb5202375809d9
Loading…
Cancel
Save