发表于: 2020-06-02 22:21:11
2 1382
今天完成的事情:学习SpringMVC
敲好的代码运行不起来,感觉自己对MVC的掌握程度远远不够,听取了师兄的建议,再学习SpringMVC
重新创建了一个WEB项目,配置好POM web.xml 等配置文件,tomcat运行,成功启动
(似曾相识的步骤)
然后 写好一个简单的控制层
@RequestMapping(value = "c/banner/{id}",method = RequestMethod.GET)
public ModelAndView id(@PathVariable("id") Long id){
ModelAndView mv = new ModelAndView("banner");
mv.addObject("id",id);
return mv;
}
其中 new ModelAndView("banner") 指可以跳转到指定的页面,也就是banner.jsp文件
之前写过了接口文档,我认为 此处的 String 与 Object 都是前端的数据类型,我之前一直比较迷惑这俩东西到底是啥
banner.jsp文件配置
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
<json:object escapeXml="false">
<json:object name="banner" >
<json:property name="id" value="${banner.id}" />
<json:property name="url" value="${banner.url}" />
</json:object>
</json:object>
结果输出页面
这里我并没有写业务层...
@Resource
private BannerService bannerService;
//
@RequestMapping(value = "/c/banner/{id}",method = RequestMethod.GET)
public ModelAndView banner(@PathVariable(“id”) Long id){
Banner banner = bannerService.findById(id);
ModelAndView mv = new ModelAndView();
mv.setViewName("banner");
mv.addObject("banner",banner);
return mv;
这样是从代码中注入bannerservice,通过这个服务类使用传递参数id获取数据,这些只是业务逻辑,接下来就是视图渲染,需要在banner.jsp文件中编写JSTL标签然后读出数据,但是这个还需要从tomcat中导入jar包,这个操作在我刚开始学Spring MVC的时候就已经尝试了,不好用,然后我就尝试任务二时的业务逻辑
@Resource然后爆出了下面的错误....原来是我业务层没有增加注解@Service....
private BannerService bannerService;
@RequestMapping(value = "/c/banner/{id}",method = RequestMethod.GET)
public String find(@PathVariable("id") Long id, Model model){
Banner banner = bannerService.findById(id);
model.addAttribute("banner",banner);
return "banner";
}
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bannerController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.service.BannerService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}
改正之后,成功解决问题
然后照着这样把其他的控制层写好..
进度太慢,之前学过的东西没有运用到,把之前的日报重新翻看了一遍,postman也忘了怎么用...啊,我真是个菜鸡呢
明天计划的事情:别的没有,就希望写好的代码可以正常跑,可以根据接口文档调用接口
评论