gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
<? xml version = "1.0" encoding = "UTF-8" ?>
< web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id = "WebApp_ID" version = "3.0" >
  < 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 >
</ web-app >

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? 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-3.0.xsd" >
   
   < bean name = "/product_input.action" class = "controller.InputProductController" />
   < bean name = "/product_save.action" class = "controller.SaveProductController" />
 
   < bean id = "viewResolver"
     class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
    < property name = "prefix" value = "/WEB-INF/jsp/" />
    < property name = "suffix" value = ".jsp" />
   </ bean >
</ beans >

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

1)InputProductController.java 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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信息并返回 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;
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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ 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 >Insert title here</ title >
</ head >
< body >
 
< div id = "global" >
< form action = "product_save.action" method = "post" >
  < fieldset >
   < legend >Add a product</ legend >
   < label for = "name" >Product Name: </ label >
   < input type = "text" id = "name" name = "name" value = "" tabindex = "1" >
   < label for = "description" >Description: </ label >
   < input type = "text" id = "description" name = "description" tabindex = "2" >
   < label for = "price" >Price: </ label >
   < input type = "text" id = "price" name = "price" tabindex = "3" >
   < div id = "buttons" >
    < label for = "dummy" ></ label >
    < input id = "reset" type = "reset" tabindex = "4" >
    < input id = "submit" type = "submit" tabindex = "5" value = "Add Product" >
   </ div >
  </ fieldset >
</ form >
</ div >
 
</ body >
</ html >

2)ProductDetails.jsp 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ 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 >Insert title here</ title >
</ head >
< body >
< div id = "global" >
  < h4 >The product has been saved.</ h4 >
  < p >
    < h5 >Details:</ h5 >
    Product Name: ${product.name} < br />
    Description: ${product.description}< br />
    Price: $${product.price}
  </ p >
</ div >
</ body >
</ html >

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

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

总结 。

以上就是本文关于SpringMVC编程使用Controller接口实现控制器的全部内容,希望对大家有所帮助。如有不足之处,欢迎留言指出.

原文链接:http://blog.csdn.net/qq_28379809/article/details/76177343 。

最后此篇关于SpringMVC编程使用Controller接口实现控制器实例代码的文章就讲到这里了,如果你想了解更多关于SpringMVC编程使用Controller接口实现控制器实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com