Spring附有一些简单的窗体处理handler,这些handler都实现了Controller接口,您可以使用这些类别,让它自动为您收集窗体参数并填入窗体对象(form object),而无需您亲自处理这些细节。
org.springframework.web.servlet.mvc.SimpleFormController是Spring提供的一个Controller接口实现,以下实现一个窗体登入程序,以示范SimpleFormController的作用,首先我们先设计一个form.jsp:
< html >
< head >< title > Login </ title ></ head >
< body >
请输入使用者名称与密码: < p >
< formname = " loginform " action = " /springapp/login.do " method = " post " >
名称 < inputtype = " text " name = " username " />< br >
密码 < inputtype = " password " name = " password " />< br >
< inputtype = " submit " value = " 确定 " />
</ form >
注意:输入错误会再回到这个页面中。
</ body >
</ html >
窗体中传递两个参数username与password,注意method是post,这样待会Spring才会将我们的参数填入窗体对象中。先看看我们的LoginAction:
LoginAction.java
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet. * ;
public class LoginAction extends SimpleFormController {
// 重载父类onSubmit方法
protected ModelAndViewonSubmit(Objectcommand) throws Exception {
LoginFormform = (LoginForm)command;
if ( " caterpillar " .equals(form.getUsername()) && " 123456 " .equals(form.getPassword())) {
return new ModelAndView( this .getSuccessView(), " user " ,form.getUsername());
} else {
return new ModelAndView( this .getFormView());
}
}
}
LoginAction继承了SimpleFormController,并重新定义其onSumit()方法,Spring会呼叫这个方法,onSumit()接收command对象,这个对象代表了窗体对象,onSumit()有几个不同的版本,这边所使用的是最简单的版本,您可以看看API文件了解它的其它版本。
getSuccessView()与getFormView()是SimpleFormController中定义的两个方法,分别表示通过验证与物败的目标网页,我们待会可以直接在Bean定义档中定义,先来看看窗体对象,它只是个简单的JavaBean:
LoginForm.java :
public class LoginForm {
private Stringusername;
private Stringpassword;
public void setUsername(Stringusername) {
this .username = username;
}
public void setPassword(Stringpassword) {
this .password = password;
}
public StringgetUsername() {
return username;
}
public StringgetPassword() {
return password;
}
}
Spring会收集Request中相关的参数,并将之填入有对应到的属性,至于LoginAction如何得到command,这我们要在Bean定义档中撰写:
<! DOCTYPEbeansPUBLIC " -//SPRING/DTDBEAN/EN " " http://www.springframework.org/dtd/spring-beans.dtd " >
< beans >
< beanid = " urlMapping " class = " org.springframework.web.servlet.handler.SimpleUrlHandlerMapping " >
< propertyname = " mappings " >
< props >< propkey = " /login.do " > loginAction </ prop ></ props >
</ property >
</ bean >
< beanid = " viewResolver " class = " org.springframework.web.servlet.view.InternalResourceViewResolver " >
< propertyname = " viewClass " >
< value > org.springframework.web.servlet.view.InternalResourceView </ value >
</ property >
< propertyname = " prefix " >< value >/ WEB - INF / jsp /</ value ></ property >
< propertyname = " suffix " >< value > .jsp </ value ></ property >
</ bean >
< beanid = " loginAction " class = " onlyfun.caterpillar.LoginAction " >
< propertyname = " commandClass " >< value > onlyfun.caterpillar.LoginForm </ value ></ property >
< propertyname = " successView " >< value >/ WEB - INF / jsp / success.jsp </ value ></ property >
< propertyname = " formView " >< value >/ html / form.htm </ value ></ property >
</ bean >
</ beans >
在loginAction中的commandClass,即使定义它所要使用的窗体对象,注意我们也定义了successView与formView,其中我们的success.jsp如下:
< head >< title > LoginSuccess </ title ></ head >
< body >
< H1 > Hello,$ {user} !!</ H2 >
Thisisyoursecretgift.
</ body >
</ html >
登入成功的话,会进入success.jsp并显示使用者的名称,登入失败的话,依formView的设定,会回到原来的登入窗体。
发表评论
-
spring-MessageSource
2010-05-05 15:41 1723将Spring自带的org.springframework.c ... -
spring的扩展点--PropertyPlaceholderConfigurer
2010-05-05 14:01 1074它的作用是一个资源属性的配置器,能够将BeanFactory的 ... -
ApplicationContextAware
2010-03-30 14:36 1155JDK-doc 2.5.6 Interface Applic ... -
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
2010-01-24 18:45 3834org.springframework.beans.facto ... -
SPRING框架的7大模块
2008-08-23 16:48 987核心容器:核心容器 ... -
使用Spring编写第一个程序-spring初级体验
2008-08-23 16:52 788对最原始的HelloWorld.java ... -
Spring中BeanFactory配置文件的元素解析
2008-08-24 11:39 743<?xml version="1.0" ... -
使用Lookup方法注射方法
2008-08-24 17:46 698spring方法解决下面的问题:一个singleton bea ... -
替换任意的方法
2008-08-24 18:06 834在spring中不但提供了Lookup方法来注射方法,还提供了 ... -
SimpleFormController简单表单控制器的处理流程
2008-08-26 10:19 8741.当表单控制器接 ... -
SPRING分发器(DispatcherServlet)
2008-09-09 00:15 1365分发器(DispatcherServlet) Sprin ... -
Spring的View和ViewResolver的使用
2008-09-11 23:15 1533打开Spring的源代码,我们可以在org.springfra ... -
ModelAndView解析
2008-09-16 09:39 1268查看spring的帮助文档得到以下信息: org.sprin ... -
spring验证器Validator接口
2008-09-16 21:30 2630spring2.0 Validator接口 ... -
spring web mvc配置
2008-09-17 11:04 1130spring内建一个请求驱动 ... -
spring视图解析器
2008-09-17 15:21 1349spring最常用的JSP/JSTL视图解析器是: Int ... -
Spring dataSource配置
2010-01-23 13:40 1818不管通过何种持久化 ... -
AOP(Aspect Oriented Programming ) 面向切面编程
2010-01-23 13:38 835AOP是什么? AOP是OO ...
相关推荐
它是苹果提供的一个基础类,用于处理屏幕上的视图、用户交互以及其他视图控制器的协调。`UIViewController`提供了许多功能,如显示和隐藏导航栏、工具栏,处理屏幕旋转等。在iOS应用中,几乎每个屏幕都会由一个或多...
通过这个例子,初学者可以学习到如何在VC++环境中构建和管理多视图的SDI应用,掌握MFC的类库使用、视图的创建与更新、事件处理以及用户界面设计等关键技能。这是一个非常实用的起点,为进一步的MFC应用开发打下坚实...
当在网页填写表单信息过多的时候,一般会采用向导式的分页填写表单方式处理,当用户点击下一步的时候,spring表单控制器会保存每一页的内容,如果填写到中途时想返回修改前面填写的信息时,之前的内容将会重现,而不...
4. **视图解析**:处理完表单数据后,通常会返回一个视图名称,Spring MVC的视图解析器会根据这个名字找到对应的视图(如JSP、Thymeleaf模板等),并渲染响应。 现在,我们来看重定向。在上述示例中,控制器方法...
这是一个简单完整的Spring MVC向导控制器(AbstractWizardFormController)的例子,包含所需的类包,可以运行,也是我重新熟悉Spring 的第二例子,明天再上传Spring 的例外个例子,如有问题,我们可以互相学习下.
AMLoginSignup项目的核心组件是两个视图控制器:一个是登录视图(LoginViewController),另一个是注册视图(SignupViewController)。这两个视图控制器通常负责收集用户的登录凭据,如用户名和密码,以及在注册过程...
这个库提供了一个可定制的容器视图控制器,允许开发者更高效地组织和展示内容。其主要特性包括: 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 的`...
4. **JSF(JavaServer Faces)**:JSF是一个Java的Web应用程序框架,它提供了组件库和事件处理机制,用于构建视图和控制器。JSF可以与Servlet一起工作,为MVC架构提供更高级别的抽象。在这个例子中,JSF可能用于创建...
3. **控制器(Controller)**:控制器接收并处理来自视图的表单提交。你可以定义一个带有`[HttpPost]`属性的方法来处理POST请求,这个方法接收之前提到的模型作为参数。在这里,你可以执行业务逻辑,如验证用户输入...