动态目录实现——后端部分

前端部分:
后端用的是Maven管理SSM框架。
1、Controller层代码
我把导的包一起复制进来了,怕有些人导包麻烦。
用到了Restful风格,所以可以写一样的RequestMapping,用不同的方法区别。
注意一下传参就好‘@RequestBody Map map’。

package team.controller.teacher;

import java.util.Map;

import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import team.model.po.Course;
import team.service.course.ICourseService;
import team.service.course.ITeacherCourseService;
import team.util.TokenGenerator;

@Controller
@RequestMapping("teacher")
public class TeacherCourseController {
    
    @Autowired
    ITeacherCourseService teacherCourseService;
    
    @Autowired
    ICourseService courseService;
    
    /**
     * 跳转到教师添加课程目录的界面
     * @param session
     * @return 
     */
    @RequestMapping(value="add/catalog",method=RequestMethod.GET)
    public String toAddCatalog(HttpSession session) {
        session.setAttribute("courseToken", TokenGenerator.generateTokeCode());
        return "teacher/addCatalog";
    }
        
    @RequestMapping(value="add/catalog",method=RequestMethod.POST)
    @ResponseBody
    public String addCatalog(@RequestBody Map map,HttpSession session) {
        teacherCourseService.addCourse(map.get("catalogJson"));
        System.out.println("插入成功!");
        return "123"; 
    }
    
}

2、service层
注解写的都比较详细了,主要就是解析json的方法。

package team.service.course.impl;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;

import team.dao.teacher.TeacherCourseDao;
import team.model.po.CourseCatalog;
import team.service.course.ITeacherCourseService;

@Service("teacherCourseService")
public class TeacherCourseServiceImpl implements ITeacherCourseService  {
    
    @Autowired
    TeacherCourseDao teacherCourseDao;
    
    /**
     * 将目录信息的json字符串中的数据插入课程目录表
     * @param catalogJson 目录的json字符串,对其进行解析,然后插入课程目录表中
     * @return
     */
    @Override
    public String addCourse(String catalogJson) {
        
        try {
            System.out.println(catalogJson);
            List courseCatalogs = parseCatalogJson(catalogJson);
            teacherCourseDao.insertCatalogs(courseCatalogs);
            return "teacher/addCourseSuc";
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("解析错误");
        }
        return null;
    }
    
    /**
     * 解析catalogJson字符串为CourseCatalog列表
     * @param catalogJson
     * @return List 返回课程目录集合
     * @throws IOException 
     */
    @Override
    public List parseCatalogJson(String catalogJson) throws IOException {

        ObjectMapper objectMapper = new ObjectMapper();
        JavaType jt = objectMapper.getTypeFactory().constructParametricType(ArrayList.class, CourseCatalog.class);
        List courseCatalogs = objectMapper.readValue(catalogJson, jt);
        return courseCatalogs;
    }   
}

3、DAO层
DAO层就是一个插入的功能,我相信大家都会写。

如何使用Restful可以自行去再了解。

有改进的地方欢迎指点!有用请点赞!

你可能感兴趣的:(动态目录实现——后端部分)