换框架啦!
(改写之前的ssm框架项目,改用springboo框架
先导入对应html
新建TypeController
@Controller
@RequestMapping("/admin/types")
public class TypeController {
@Autowired
private ITypeService iTypeService;
@GetMapping
public String list(@PageableDefault(size = 5, sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable, Model model) {
Page<Type> page = iTypeService.listType(pageable);
model.addAttribute("page", page);
return "admin/types";
}
//@{/admin/type/{id}/delete(id=${types.id})}
@GetMapping("{id}/delete")
public String delete(@PathVariable Long id) {
iTypeService.deleteType(id);
return "redirect:/admin/types";
}
@GetMapping("input")
public String input(){
return "admin/types-input";
}
@PostMapping("add")
public String add(Type type){
iTypeService.addType(type);
return "redirect:/admin/types";
}
@GetMapping("{id}/toUpdate")
public String toUpdate(@PathVariable Long id, Model model){
Type type = iTypeService.getTypeById(id);
model.addAttribute("type", type);
return "admin/types-input";
}
@PostMapping("update/{id}")
public String update(Type type, @PathVariable Long id){
iTypeService.update(id, type);
return "redirect:/admin/types";
}
}
新建ITyprService
public interface ITypeService {
Page<Type> listType(Pageable pageable);
void deleteType(Long id);
void addType(Type type);
Type getTypeById(Long id);
void update(Long id, Type type);
}
还有它的实现类
@Service
public class TypeServiceImpl implements ITypeService {
@Autowired
private TypeDao typeDao;
@Override
public Page<Type> listType(Pageable pageable) {
return typeDao.findAll(pageable);
}
@Override
public void deleteType(Long id) {
typeDao.deleteById(id);
}
@Override
public void addType(Type type) {
typeDao.save(type);
}
@Override
public Type getTypeById(Long id) {
return typeDao.getOne(id);
}
@Override
public void update(Long id, Type type) {
Type type1 = typeDao.getOne(id);
BeanUtils.copyProperties(type, type1);
typeDao.save(type);
}
}
改写前端页面(按钮
types.html
<tr th:each="type,iterStat : ${page.content}">
<td th:text="${iterStat.count}">1</td>
<td th:text="${type.name}">刻意练习清单</td>
<td>
<a href="#" th:href="@{/admin/types/{id}/toUpdate(id=${type.id})}" class="ui mini teal basic button">编辑</a>
<a href="#" th:href="@{/admin/types/{id}/delete(id=${type.id})}" class="ui mini red basic button">删除</a>
</td>
types-input.html
class="ui container">
<form action="#" method="post" th:action="*{id}==null ? @{/admin/types/add} : @{/admin/types/update/{id}(id=*{id})}" class="ui form">
<input type="hidden" name="id" th:value="*{id}">
<div class=" field">
<div class="ui left labeled input">
<label class="ui teal basic label">名称</label>
<input type="text" name="name" placeholder="分类名称" th:value="*{name}">
</div>
</div>
<div class="ui error message"></div>
<div class="ui right aligned container">
<button type="button" class="ui button" onclick="window.history.go(-1)">返回</button>
<button class="ui teal submit button">提交</button>
</div>
</form>