# travel
**Repository Path**: infiniteStars/travel
## Basic Information
- **Project Name**: travel
- **Description**: 使用SpringBoot+MybatisPlus创建的旅游网站
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2021-07-26
- **Last Updated**: 2022-07-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 旅游项目
- 记录一些在创建项目过程中解决的一些问题
### 1.在thymeleaf中使用restful风格
```html
人员管理 //第一种方法 传递一个参数
删除 //第二种方法,传递多个参数
```
前端接受
- 注意: 使用@PathVariable("id")接收参数 。 不能用RequestParam()。 否则会报错。
`Required request parameter 'id' for method parameter type long is not presen`
```java
@GetMapping("/deleteuser/{id}/{pid}")`
public String deleteuser(@PathVariable("id")long id,@PathVariable("pid")long pid, HttpSession session,Model model){
List users =(List)session.getAttribute("users");
User user = userService.getById(id);
users.remove(user);
model.addAttribute("users",users);
return "home/usermanage";
}
```
### 2.日期和字符串相互转换
```java
//1.将日期转化为字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
//2.将字符串转化为日期
String time = "1994-11-24 07:11:24";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(time);
```
### 3.使用markdown进行编辑
1. 到官网 https://pandao.github.io/editor.md/ 下载 edmtor.md
2. 部署到 static 静态资源中。
3. 注意
- 将路径改为自己的路径。
- 有一些包点不进去,使用全局搜索,查找后修改路径。确保所有的 link标签和 script标签 都能点进去。
```html
Simple example - Editor.md examples
```
4. 展示界面
- 注意事项和 3 一样。
```html
```
**效果如下图所示**

### 4.使用mybatisplus进行分页操作
1. 在mybatisplusConfig中进行分页配置
```java
@Configuration
@EnableTransactionManagement
@MapperScan("com.dz.springboottravel.mapper")
public class MybatisPlusConfig {
//分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
```
2. 编写Controller
```java
//num 指当前页
@RequestMapping("/page{num}")
public String page(@PathVariable("num")int num,Model model){
List lists = programService.list();
//查出一共有多少页
int size = programs.size();
int pageNum=size%8==0 ? size/8: size/8+1;
//每页展示8条数据
Page page = new Page<>(num,8);
programService.page(page);
List records = page.getRecords();
model.addAttribute("pageNum",pageNum);
model.addAttribute("num",num);
model.addAttribute("programs",records);
return "index";
}
```
3. 前端展示
- **对数字进行遍历** ==th:each=" i : ${#numbers.sequence(1,pageNum)}"==
```html
```
- 前端页面css样式
```css
```
### 5.使用mybatisplus进行链式查询
- 想详细了解的可以去mybatisplus官网 https://baomidou.com/guide/wrapper.html#abstractwrapper
- 日期格式可以直接比较大小
- ==key 必须和数据库中的字段名相一致。==
- 前端如果是 date 类型, 后端也必须用 String 来接收 。 否则会报下边的错。
`Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'`
```java
@RequestMapping("/search")
public String Search(String keyword, String date, String budget, Model model) throws ParseException {
/**链式编程
eq = 地名相等
ge >= 开始日期大于搜索日期
le <= 预算小于等于搜索预算 **/
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date time = sdf.parse(date);
List lists = programService.query().eq("place", keyword).ge("start_time",time).le("budget", Integer.parseInt(budget)).list();
model.addAttribute("lists",lists);
return "tour/search";
}
```
### 6.创建项目时,使导入的数据库依赖失效
```java
@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
```