SpringMVC编程使用Controller接口实现控制器实例代码

网友投稿 417 2023-03-14


SpringMVC编程使用Controller接口实现控制器实例代码

Controller简介

Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:

1、收集、验证请求参数并绑定到命令对象;

2、将命令对象交给业务对象,由业务对象处理并返回模型数据;

3、返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。

DispatcherServlet,主要负责整体的控制流程的调度部分:

1、负责将请求委托给控制器进行处理;

2、根据控制器返回的逻辑视图名选择具体的视图进行渲染(并把模型数据传入)。

因此MVC中完整的C(包含控制逻辑+功能处理)由(DispatcherServlet+Controller)组成。

因此此处的控制器是WebMVC中部分,也可以称为页面控制器、动作、处理器。

之前用注解的方式实现了控制器,现在换了一种,通过实现了Controller接口的Controller类来实现处理请求的作用。

主要包括:XML配置文件,java普通类,Javaform类,Controller类,和jsP界面

1.首先是XML配置文件,包括了web.xml和springmvc-servlet.xml。代码如下:

1)web.xml

springmvc

org.springframework.web.servlet.DispatcherServlet

1

springmvc

/

2)springmvc-servlet,默认方式的DispatcherServlet配置。

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans-3.0.xsd">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans-3.0.xsd">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

2.Controller类,包括两个,一个用于打开首页,一个用于处理用户输入并返回

1)InputProductController.java

package controller;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;

public class InputProductController implements Controller{

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

@Override

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

logger.info("InputProductController called");

return new ModelAndView("ProductForm");

}

}

2)SaveProductController.java,保存用户输入的Product信息并返回

package controller;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.springframework.web.servlehttp://t.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;

import domain.Product;

import form.ProductForm;

public class SaveProductController implements Controller{

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

@Override

public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

logger.info("SaveProductController called");

ProductForm productForm = new ProductForm();

//product action properties

productForm.setName(request.getParameter("name"));

productForm.setDescription(request.getParameter("description"));

productForm.setPrice(request.getParameter("price"));

//create model

Product product = new Product();

product.setName(productForm.getName());

product.setDescription(productForm.getDescription());

try {

product.setPrice(

float.parsefloat(productForm.getPrice()));

}

catch(NumberFormatException e) {

}

//insert code to save Product

System.out.println("返回视图");

return new ModelAndView("ProductDetails","product",product);

}

}

3.JSP界面,包括两个,ProductForm和ProductDetails

1)ProductForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Add a product

2)ProductDetails.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

Product Name: ${product.name}

Description: ${product.description}

Price: $${product.price}

好了,代码部分已经齐全了,启动server之后,输入URL:http://localhost:8080/SpringSimple/product_input.action;就可以看到首页了。

注:配置文件和Controller类返回的视图中文件的位置必须要小心。。

总结

以上就是本文关于SpringMVC编程使用Controller接口实现控制器的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

Springmvc Controller接口代码示例

Spring SpringMVC在启动完成后执行方法源码解析

SpringMVC使用MultipartFile 实现异步上传方法介绍

如有不足之处,欢迎留言指出。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:api接口文档内容(api接口怎么编写)
下一篇:利用vs写接口测试用例(vs测试输出窗口在哪)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~