实习日志7.28

分类(type)【细】

新增和修改

  • 新增和修改我们都用同一个方法。type.html页面中找到新增和编辑,修改路径,我们根据id判断,如果是id=-1就是新增,否则就是编辑,编辑页面只是在types-input.html显示了被编辑type的信息
<a href="#" th:href="@{/admin/types/input/{id}(id=${type.id})}" class="ui mini teal basic button">编辑</a>
···
<a href="#" th:href="@{/admin/types/input/{id}(id=-1)}"  class="ui mini right floated teal basic button">新增</a>

编辑的提交和新建也都调用一个方法,路径相同

<a href="#" th:href="@{/admin/tags/input}" class="active item">新增</a>
···
<form action="#" method="post" th:object="${tag}" th:action="@{/admin/tags/input}"   class="ui form">
  • control层新增方法,如果id不等于-1,就根据id从数据库中查到type并用model在页面中展示出来,如果不是就新建一个type对象
@GetMapping("input/{id}")
public String input(@PathVariable Long id,Model model){
    Type type=null;
    if(id!=-1){
        type=typeService.findById(id);
    }else {
        type=new Type();
    }
    model.addAttribute("type",type);
    return "admin/types-input";
}

types-input.html更新或提交后,用同一个方法保存

@PostMapping("input")
public String input(Type type){
    typeService.input(type);
    return "redirect:/admin/types";
}
  • service层编辑需要使用id在数据库查询type,和保存
@Override
public Type findById(Long id) {
    return typeDao.getOne(id);
}
@Override
public void input(Type type) {
    typeDao.save(type);
}

删除

  • 界面找到删除,修改路径,再在control层新增一个方法delete,从PathVariable得到参数id,交给service层执行删除,再重新执行一次查询
@RequestMapping("delete/{id}")
public String delete(@PathVariable Long id){
    typeService.deleteById(id);
    return "redirect:/admin/types";
}
  • service层新增对应接口和实现即可
@Override
public void deleteById(Long id) {
    typeDao.deleteById(id);
}

结果演示

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签(tag)【略】

  • 标签的分页显示、新建、编辑和删除,与分类的方法相同,不多赘述。

实体类

package com.zr.po;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;


@Entity
@Table(name = "t_tag")
public class Tag {

    @Id
    @GeneratedValue
    private Long id;
    private String name;

    @ManyToMany(mappedBy = "tags")
    private List<News> newsList = new ArrayList<>();

    public Tag() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<News> getNewsList() {
        return newsList;
    }

    public void setNewsList(List<News> newsList) {
        this.newsList = newsList;
    }

    @Override
    public String toString() {
        return "Tag{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

control层

package com.zr.controller;

import com.zr.po.Tag;
import com.zr.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/admin/tags")
public class TagController {

    @Autowired
    private TagService tagService;

    @RequestMapping
    public String list(@PageableDefault(size = 5,sort = {"id"},direction = Sort.Direction.DESC) Pageable pageable, Model model){
        Page<Tag> page=tagService.listTag(pageable);
        model.addAttribute("page",page);
        return "admin/tags";

    }

    @GetMapping("{id}/delete")
    public String delete(@PathVariable Long id){
        tagService.delete(id);
        return "redirect:/admin/tags";
    }

    @GetMapping("input/{id}")
    public String toInput(@PathVariable Long id,Model model){
        if(id==-1){
            Tag tag=new Tag();
            model.addAttribute("tag",tag);
        }else {
            Tag tag=tagService.findTagById(id);
            model.addAttribute("tag",tag);
        }
        return "admin/tags-input";

    }

    @RequestMapping("input")
    public String input(Tag tag){
        tagService.input(tag);
        return "redirect:/admin/tags";
    }


}

service层实现类

package com.zr.service.impl;

import com.zr.dao.TagDao;
import com.zr.po.Tag;
import com.zr.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.List;

@Service
public class TagServiceImpl implements TagService {

    @Autowired
    private TagDao tagDao;
    @Override
    public Page<Tag> listTag(Pageable pageable) {
        return tagDao.findAll(pageable);
    }

    @Override
    public void delete(Long id) {
        tagDao.deleteById(id);
    }

    @Override
    public Tag findTagById(Long id) {
        return tagDao.getOne(id);
    }

    @Override
    public void input(Tag tag) {
        tagDao.save(tag);
    }

    @Override
    public List<Tag> listTag() {
        return tagDao.findAll();
    }

    @Override
    public List<Tag> findTagByTagId(String tagIds) {
        //1,2,3
        List<Long> ids=new ArrayList<>();
        if(!StringUtils.isEmpty(tagIds)){
            String[] strings = tagIds.split(",");
            for (String s:strings){
                if(!StringUtils.isEmpty(s)){
                    ids.add(new Long(s));
                }
            }
        }
        return tagDao.findAllById(ids);
    }

    @Override
    public String getTagIds(List<Tag> tags) {
        //1 2 3 ===>1,2,3
        StringBuffer ids=new StringBuffer();
        if(!tags.isEmpty()){
            boolean flag=false;
            for(Tag t:tags){
                if(flag){
                    ids.append(",");
                    ids.append(t.getId());
                }else {
                    ids.append(t.getId());
                    flag=true;
                }
            }
        }
        return ids.toString();
    }
}

dao层

package com.zr.dao;

import com.zr.po.Tag;
import org.springframework.data.jpa.repository.JpaRepository;

public interface TagDao extends JpaRepository<Tag,Long> {
}

结果演示

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值