作为一名从.NET转Java的小渣渣,之前都是听说Java配置复杂,今天算是见识到了。甚是怀念宇宙第一IDE VS和.NET高效的开发。
网上大多教程是基于Eclipse的,即使按照IDEA的教程做,第一次上手,或多或少有些问题,特意在这里做个笔记和分享。
我的IDEA版本是2019.2,Tomcat是9.0,JDK是1.8,按照以下步骤操作,应该没啥问题。
1.创建项目
2.命名
3.等待jar包下载完毕
下面是我创建完后,文件目录结构
4.创建所需的文件夹
在WEB-INF下创建classes、lib、page(放网页的地方)文件夹
在src下创建control文件夹,存放控制器类
5.配置环境
由于idea下载的jar包并不完整,只是框架的包,所以还需下载一些jar
链接:https://how2j.cn/frontdownload?bean.id=381
为了方便贴的链接是我常用的一个学习网站里面的下载链接。
下载后,解压到自己创建的lib文件夹里,注意是WEB-INF下自己创建的,不是外部的lib
解压后右键lib文件夹,然后如图操作
接着file--》project structture。然后如图操作
6.开始写配置文件
打开web.xml。里面默认有些内容了,贴上我的代码
HelloMVC
org.springframework.web.servlet.DispatcherServlet
1
HelloMVC
/
如果你的取得名字是HelloMVC,那么与其对应的servlet名字必须是:HelloMVC-servlet.xml。格式是:自定义名称-servlet.xml
HelloMVC-servlet内容如下:
7.开始写控制器类内容了
在src-control下新建一个类,叫IndexController
内容如下:
packagecontrol;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.servlet.ModelAndView;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;
@Controllerpublic classIndexController {
@RequestMapping("/index")//public String handleRequest(Model model) throws Exception {//model.addAttribute("message","这是第一个SpringMVC网页");//return "index";//}
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throwsException{
ModelAndView model=new ModelAndView("index");
model.addObject("message","这是第一个SpringMVC网页");returnmodel;
}
}
有两种方法可用,一个是ModelAndView,一个是Model。具体区别大家可以看其他博文,我以后也许会写一篇关于这个的博客。
8.开始写网页
在page文件夹下创建一个index.jsp.把最外面的一个index删掉。
内容如下:
SpringMVC测试
${message}
9.开始配置Tomcat
10.运行测试
运行之后,输入网址
http://localhost:8080/index
错误总结:
在配置完环境那一步。file--》project structture里面左侧最下面有个problems,如果上面有数字代表有配置错误,点fix,或按提示修复就行。
如果网页可以运行但是无法显示控制器传的数据,可以在控制器类的方法内打个断点,如果没进到断点有可能是url的问题。
如果进到了断点,且正常运行,但前端还是没收到数据。那么如果你用的是ModelAndView,看看引用的是不是org.springframework.web.servlet.ModelAndView,而不是org.springframework.web.portlet.ModelAndView。我就是坑在这上面,找了半天。