SpringMVCⅠ基础

MVC继承Controller用法

DispathcherServet

调度器的作用简单来说就是要把不同的Action分发给不通过的Controller去处理,再返回给View层
Spring MVC内置了一个调度器,只需要再web.xml配置好以后,在调度器的配置文件中配置即可

web.xml:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/simple-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

注意的是里面<init-param> 标签内的内容指的是当dispatcher.xml文件位置有变动的时候指定其路径

controller接口

开发控制器的一种方式,就是继承Controller,但是只能处理单一的一个Action
重写里面该方法就可以

public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)

简单MVC结构

工程目录

工程目录
一定注意lib目录一定要在WEB-INF目录下,否则Tomcat启动会报错

配置文件

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean name="/product_input.action"
      class="app03a.controller.InputProductController"/>
<bean name="/product_save.action"
      class="app03a.controller.SaveProductController"/>
</beans>

Controller范例

public class SaveProductController implements Controller{

private static final Log logger = LogFactory.getLog("SaveProductController.class");

@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
    logger.info("SaveProductController called");

    //创建表单对象
    ProductForm productForm = new ProductForm();
    productForm.setName(httpServletRequest.getParameter("name"));
    productForm.setDescription(httpServletRequest.getParameter("description"));
    productForm.setPrice(httpServletRequest.getParameter("price"));

    //根据表单对象生成Model
    Product product = new Product();
    product.setName(productForm.getName());
    product.setDescription(productForm.getDescription());
    try{
        product.setPrice(Float.parseFloat(productForm.getPrice()));
    }catch (NumberFormatException e){
        e.printStackTrace();
    }

    return new ModelAndView("/WEB-INF/jsp/ProductDetails.jsp", "product", product);
}

}

视图解析器

在spring的配置文件中添加如下代码:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

两个属性分别指定的是解析器的前缀和后缀两个属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值