发表于: 2020-03-24 22:31:46

1 1141


就写了留言管理模块 

@Controller
@RequestMapping("/message")
public class MessageController {
@Autowired
   MessageService messageService;
private static final Logger log= LogManager.getLogger(BannerController.class);

/**
    * 查询留言列表(默认精选)
    * @param modelAndView
    @return
    */
   @RequestMapping(value = "/list",method = RequestMethod.GET)
public ModelAndView getBannerList(ModelAndView modelAndView){
List<Message> messageList=messageService.selectAllMessage();
log.info(messageList);
if (messageList!=null){
modelAndView.addObject("code",200);
modelAndView.addObject("msg","查询成功");
modelAndView.addObject("messageList",messageList);
}else {
modelAndView.addObject("code",404);
modelAndView.addObject("msg","操作失败");
}
modelAndView.setViewName("messageJson2");
return modelAndView;
}

/**
    * 根据id删除单条留言
    * @param id
    @param modelAndView
    @return
    */
   @RequestMapping(value = "deleteMessage/id={id}",method = RequestMethod.POST)
public ModelAndView deleteBanner(@PathVariable Long id, ModelAndView modelAndView){
if(messageService.deleteByPrimaryKey(id)) {
modelAndView.addObject("code"200);
modelAndView.addObject("msg""删除成功");
}else {
modelAndView.addObject("code"404);
modelAndView.addObject("msg""操作失败");
}
modelAndView.setViewName("json");
return modelAndView;
}

/**
    * 查询单条留言
    * @param id
    @param modelAndView
    @return
    */
   @RequestMapping(value = "/selectMessage?id={id}",method = RequestMethod.GET)
public ModelAndView getBanner(@PathVariable Long id, ModelAndView modelAndView){
Message message=messageService.selectByPrimaryKey(id);
if (message!=null){
modelAndView.addObject("code",200);
modelAndView.addObject("msg","查询成功");
modelAndView.addObject("message",message);
}else {
modelAndView.addObject("code",404);
modelAndView.addObject("msg","操作失败");
}
modelAndView.setViewName("messageJson1");
return modelAndView;
}

/**
    * 设为精选留言
    * @param message
    @param modelAndView
    @return
    */
   @RequestMapping(value = "updateBannerSetting",method = RequestMethod.PUT)
public ModelAndView updateBannerSetting(Message message,ModelAndView modelAndView){
if(messageService.updateByPrimaryKeySetting(message)){
message.setStatus(0);
modelAndView.addObject("code",200);
modelAndView.addObject("msg","设为精选留言成功");
}else {
modelAndView.addObject("code",404);
modelAndView.addObject("msg","操作失败");
}
modelAndView.setViewName("json");
return modelAndView;
}
/**
    * 取消精选留言
    * @param message
    @param modelAndView
    @return
    */
   @RequestMapping(value = "updateBannerCancel",method = RequestMethod.PUT)
public ModelAndView updateBannerCancel(Message message,ModelAndView modelAndView){
if(messageService.updateByPrimaryKeyCancel(message)){
message.setStatus(1);
modelAndView.addObject("code",200);
modelAndView.addObject("msg","取消精选留言成功");
}else {
modelAndView.addObject("code",404);
modelAndView.addObject("msg","操作失败");
}
modelAndView.setViewName("json");
return modelAndView;
}

/**
    * 添加留言
    * @param message
    @param modelAndView
    @return
    */
   @RequestMapping(value ="addMessage",method = RequestMethod.POST)
public ModelAndView addMessage(Message message, ModelAndView modelAndView){
log.info(message);
if (messageService.insert(message)){
modelAndView.addObject("code",200);
modelAndView.addObject("msg","添加成功");
}else {
modelAndView.addObject("code",404);
modelAndView.addObject("msg","操作失败");
}
modelAndView.setViewName("json");
return modelAndView;
}

/**
    * 回复留言
    * @param message
    @param modelAndView
    @return
    */
   @RequestMapping(value = "addReply",method = RequestMethod.PUT)
public ModelAndView addReply(Message message,ModelAndView modelAndView){
if(messageService.addReply(message)){
modelAndView.addObject("code",200);
modelAndView.addObject("msg","保存成功");
}else {
modelAndView.addObject("code",404);
modelAndView.addObject("msg","保存失败");
}
modelAndView.setViewName("json");
return modelAndView;
}
}

系统分层,每层的具体职责

controller(action)层:只做前端数据的接收[交给service层进行处理]和向前端发送处理好的数据[如果要用到前端的API,所涉及到的数据就需要使用controller层的对象进行处理]

        controller层只能调用service层的方法,只能在controller层处理http相关的,文件上传,cookie和session[用于保存少量的数据,比如未登录的购物车,当前登录的用户]

        controller层只通过服务层暴露的接口来调用服务层提供的服务[即方法]

    service(biz)层:进行具体的业务处理,service层只能调用mapper和dao层的方法,或者引用了其他的技术的客户端[比如Redis,activeMQ,Jmail,solr等],都在service层进行处理

    dao(mappper)层:做数据库的查询和数据库数据的插入-->查询:在dao层进行查询条件的设置,插入:在dao层进行数据库数据的补全

        mapper层与dao层会有不同:mapper层是由mybatis的逆向工程自动生成的,只是接口,所以所有的操作只能在service层处理[即查询条件和数据的补全都在service层中做]

    pojo和utils:可以进行简单的数据处理,在service层进行调用即可

    

    每一层都应该依赖pojo和工具类,包装类[比如结果返回对象等],通用类等

    

    一切为了降低不同系统服务间的耦合程度

分层系统的处理流程:

    简单流程:前端页面传递的值在controller层接收,controller将值发送给service层进行处理,如果数据需要保存,就在service层调用dao来进行数据的保存

            前端发送请求,需要获取数据,发送请求给controller,controller发送请求给service,service调用dao获取数据返回,最后在controller层将数据封装好,将数据添加到请求域中进行返回

            struts中有属性的getset方法,springmvc中有modelandview,model.两者也都可以使用request

            service中方法的返回值取决于前端页面需要哪些数据,或者交给controller进一步处理时,需要的数据

今日问题 暂无


返回列表 返回列表
评论

    分享到