发表于: 2017-10-14 23:53:15
1 680
今天完成的事情:
1
按照某helloworld的demo进行非注解配置springmvc的练习:
项目环境:
IDEA 2017.2.5
JDK 1.8.0_131
maven maven3(idea自带)
添加spring-webmvc、jstl依赖包
配置web.xml:
一个springmvc的DispatcherServlet,并且映射。
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup> <!-- 启动时初始化 -->
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
配置springmvc-sevlet.xml:
<context:component-scan base-package="org.shunly"/>
<!-- HandlerMapping BeanNameUrlHandlerMapping:将URL和Bean名字映射-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- HandleAdapter SimpleControllerHandlerAdapter:
所有实现了o.s.w.s.mvc.Controller接口的Bean可以作为处理器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!-- ViewResolver
InternalResourceViewResolver:支持Servlet、JSP视图解析
Jstl:JSP模板页面使用JSTL标签库
prefix、suffix:添加前后缀
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- HelloController处理器 -->
<bean name="/hello" class="org.shunly.HelloWorldController"/>
<!--静态资源的处理-->
<mvc:default-servlet-handler/>
一个对应的Controller :HelloWorldController类继承Controller(org.springframework.web.servlet.mvc.Controller)
public class HelloWorldController implements Controller {
/**
* 1、收集参数、验证参数
* 2、绑定参数到命令对象
* 3、将命令对象传入业务对象进行业务处理
* 4、选择下一个页面
* @param httpServletRequest
* @param httpServletResponse
* @return
* @throws Exception
*/
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView modelAndView = new ModelAndView();
//添加模型数据(属性名,值)
modelAndView.addObject("message","Hello!");
//设置逻辑视图名
modelAndView.setViewName("hello");
return modelAndView;
}
}
还有一个对应的jsp:hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World!!!!!!!!!!!!!</title>
</head>
<body>
${message}
</body>
</html>
添加tomcat后运行:
总算是出现了
不过为啥message没有通过Controller返回“Hello!”!!
明天计划的事情:
继续继续!要能够做出接口来
遇到的问题:
1报错:
org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [springmvc] in context with path [] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config] with root cause
java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
加一个jstl的依赖包
2 message没有值:
自动生成的web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
2.3版本以下的默认不启用el表达式。
更改web.xml头文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
也可以在页面上添加<% @page isELIgnored="false"%>
收获:
已经熟悉流程了:
1在web.xml里面配置DispatherServlet和相应的mapping
2创建servlet名称-sevlet.xml 配置 映射器、适配器、视图解析器
3创建Controller类
4创建jsp视图
评论