发表于: 2017-10-14 23:53:15

1 679


今天完成的事情:

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视图


返回列表 返回列表
评论

    分享到