Spring附有一些简单的窗体处理handler,这些handler都实现了Controller接口,您可以使用这些类别,让它自动为您收集窗体参数并填入窗体对象(form object),而无需您亲自处理这些细节。
org.springframework.web.servlet.mvc.SimpleFormController是Spring提供的一个Controller接口实现,以下实现一个窗体登入程序,以示范SimpleFormController的作用,首先我们先设计一个form.jsp:













窗体中传递两个参数username与password,注意method是post,这样待会Spring才会将我们的参数填入窗体对象中。先看看我们的LoginAction:
LoginAction.java

























LoginAction继承了SimpleFormController,并重新定义其onSumit()方法,Spring会呼叫这个方法,onSumit()接收command对象,这个对象代表了窗体对象,onSumit()有几个不同的版本,这边所使用的是最简单的版本,您可以看看API文件了解它的其它版本。
getSuccessView()与getFormView()是SimpleFormController中定义的两个方法,分别表示通过验证与物败的目标网页,我们待会可以直接在Bean定义档中定义,先来看看窗体对象,它只是个简单的JavaBean:
LoginForm.java :
































Spring会收集Request中相关的参数,并将之填入有对应到的属性,至于LoginAction如何得到command,这我们要在Bean定义档中撰写:























在loginAction中的commandClass,即使定义它所要使用的窗体对象,注意我们也定义了successView与formView,其中我们的success.jsp如下:









登入成功的话,会进入success.jsp并显示使用者的名称,登入失败的话,依formView的设定,会回到原来的登入窗体。
发表评论
-
spring-MessageSource
2010-05-05 15:41 1728将Spring自带的org.springframework.c ... -
spring的扩展点--PropertyPlaceholderConfigurer
2010-05-05 14:01 1075它的作用是一个资源属性的配置器,能够将BeanFactory的 ... -
ApplicationContextAware
2010-03-30 14:36 1156JDK-doc 2.5.6 Interface Applic ... -
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
2010-01-24 18:45 3851org.springframework.beans.facto ... -
SPRING框架的7大模块
2008-08-23 16:48 993核心容器:核心容器 ... -
使用Spring编写第一个程序-spring初级体验
2008-08-23 16:52 794对最原始的HelloWorld.java ... -
Spring中BeanFactory配置文件的元素解析
2008-08-24 11:39 749<?xml version="1.0" ... -
使用Lookup方法注射方法
2008-08-24 17:46 703spring方法解决下面的问题:一个singleton bea ... -
替换任意的方法
2008-08-24 18:06 842在spring中不但提供了Lookup方法来注射方法,还提供了 ... -
SimpleFormController简单表单控制器的处理流程
2008-08-26 10:19 8781.当表单控制器接 ... -
SPRING分发器(DispatcherServlet)
2008-09-09 00:15 1376分发器(DispatcherServlet) Sprin ... -
Spring的View和ViewResolver的使用
2008-09-11 23:15 1534打开Spring的源代码,我们可以在org.springfra ... -
ModelAndView解析
2008-09-16 09:39 1270查看spring的帮助文档得到以下信息: org.sprin ... -
spring验证器Validator接口
2008-09-16 21:30 2641spring2.0 Validator接口 ... -
spring web mvc配置
2008-09-17 11:04 1141spring内建一个请求驱动 ... -
spring视图解析器
2008-09-17 15:21 1357spring最常用的JSP/JSTL视图解析器是: Int ... -
Spring dataSource配置
2010-01-23 13:40 1826不管通过何种持久化 ... -
AOP(Aspect Oriented Programming ) 面向切面编程
2010-01-23 13:38 838AOP是什么? AOP是OO ...
相关推荐
它是苹果提供的一个基础类,用于处理屏幕上的视图、用户交互以及其他视图控制器的协调。`UIViewController`提供了许多功能,如显示和隐藏导航栏、工具栏,处理屏幕旋转等。在iOS应用中,几乎每个屏幕都会由一个或多...
通过这个例子,初学者可以学习到如何在VC++环境中构建和管理多视图的SDI应用,掌握MFC的类库使用、视图的创建与更新、事件处理以及用户界面设计等关键技能。这是一个非常实用的起点,为进一步的MFC应用开发打下坚实...
当在网页填写表单信息过多的时候,一般会采用向导式的分页填写表单方式处理,当用户点击下一步的时候,spring表单控制器会保存每一页的内容,如果填写到中途时想返回修改前面填写的信息时,之前的内容将会重现,而不...
4. **视图解析**:处理完表单数据后,通常会返回一个视图名称,Spring MVC的视图解析器会根据这个名字找到对应的视图(如JSP、Thymeleaf模板等),并渲染响应。 现在,我们来看重定向。在上述示例中,控制器方法...
这是一个简单完整的Spring MVC向导控制器(AbstractWizardFormController)的例子,包含所需的类包,可以运行,也是我重新熟悉Spring 的第二例子,明天再上传Spring 的例外个例子,如有问题,我们可以互相学习下.
这个库提供了一个可定制的容器视图控制器,允许开发者更高效地组织和展示内容。其主要特性包括: 1. **代码驱动**:`StackViewController`支持通过代码创建和配置,这样可以在不使用任何界面构建工具(如Storyboard...
也可以手工通过代码或者计算公式,改变这个域的值,以控制用不同的表单打开同一个文档。 域(Field) 域是关系型数据库的字段,它定义了字段的类型和长度等信息。文档中的域值是记录中的域值,表单中的域是表设计...
在处理表单提交时,控制器会有一个方法,通常使用`@RequestMapping`注解来指定处理的URL和HTTP方法(如GET或POST)。 ```java @Controller @RequestMapping("/form") public class FormController { @GetMapping ...
Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建企业级的Java Web应用程序。在“struts2官方例子5--表单处理”中,我们将深入理解如何利用Struts2框架来处理Web表单数据,以及如何与Javabean Model进行...
在"流程设计器+表单设计器+MVC"的组合中,流程设计器处理业务流程,表单设计器构建用户交互界面,而MVC架构则为整个系统提供了一个良好的组织结构。通过这种集成,企业能够快速构建出符合业务需求的应用系统,实现...
在这个例子中,视图可能包含多个页面,如显示所有联系人的列表、单个联系人的详情页以及添加或编辑联系人的表单。视图从模型获取数据,并将其呈现给用户,同时接收用户的输入,但不直接处理这些输入。 控制器...
以下是一个简单的XML视图代码片段,展示了如何创建一个包含两个输入字段的表单: ```xml controllerName="myApp.controller.FormExample" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:f="sap.ui.layout....
总的来说,"lotus domino jqgrid显示视图例子"是一个将Lotus Domino的视图数据与JqGrid的交互式表格功能相结合的应用实例。这个过程涉及到前后端数据交互、JSON格式化、JqGrid的配置和操作,以及Lotus Domino的代理...
例如,可以在设计器中双击一个按钮,自动创建一个处理Click事件的方法。 文件名“xwinformdesigner”可能是这个图形化表单设计器项目的名称,它可能包含了一系列的源代码文件、资源文件和项目配置文件。开发者可以...
另一个是将视图中的数据传递到控制器中,在控制器中读取、处理这些数据。 控制器向视图传递数据 在 ASP.NET MVC 框架中,有多种方式可以将控制器向视图传递数据。其中包括使用 ViewData 传递数据、使用 TempData ...
还可以使用预设的登录表单和登录处理控制器。 ### 8. 数据库操作 使用 Doctrine 的命令行工具生成数据库表,然后通过`doctrine:schema:update --force`更新数据库结构。在控制器中,使用 Doctrine 的`...
3. **控制器(Controller)**:控制器接收并处理来自视图的表单提交。你可以定义一个带有`[HttpPost]`属性的方法来处理POST请求,这个方法接收之前提到的模型作为参数。在这里,你可以执行业务逻辑,如验证用户输入...
例如,如果XmlLocation参数指向一个XML文件,那么表单将加载并显示该文件中的数据。这使得我们可以通过修改Url参数动态地改变表单的数据源,进而控制显示的视图。 如何实现通过Url参数控制视图呢?主要分为以下步骤...
在`SimpleMVC`项目中,控制器可能由一个或多个处理HTTP请求的服务器端脚本组成,它们处理用户请求,与模型进行数据交换,然后指示视图如何响应。 **MVC模式的优势**: 1. **分离关注点**:MVC模式将应用程序的业务...