发表于: 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进一步处理时,需要的数据
今日问题 暂无
评论