无论是将Action中的变量渲染页面中,或者从request中将内容回传到Action中变量的过程,统称参数绑定。
1. 最原始的Struts2会直接赋值Action中的变量。 如hello.action?id=1,会将action中的id属性赋值。
2. 如果参数较多,而且都属于同一个对象的,可以将所有属性都放入一个对象中,比如hello.action?user.id
会为action中的User对象的id属性赋值。
3. ModelDriven接口,如果不想写太多"user."前缀,如${user.id},可以实现ModelDriven接口的getModel函数,
返回user对象。则Struts2碰到{id}时,就会尝试调用getModel() 获得user对象再获取其id属性。
4. Prepareable接口,还有一种情况Hibernate常用的情况,一个对象可能有很多属性(比如有10个属性),
但页面上可能只显示5个属性的输入框。如果按上面的方法,先new一个User类,然后从页面上赋值。
保存此对象时就会将不在页面上修改的5个属性清空了。这时就需要两次的binding,一开始user变量为空,
只绑定了action的id属性,然后在prepare()函数中查出有完整10个属性的对象,然后二次绑定时再将页面的那5个属性
复制到user对象中。
prepare()函数有两种作用,一种专门为了二次binding,一种是作为公共的数据准备函数。但是,
一个action内有多个method,不是每一个method都需要执行prepare,比如list()方法,如果这种method较多,
或者会造成冲突时,还有另外一种方式来定义二次binding函数。比如prepareSave() 函数,就会默认的在执行save()
前执行,此时,专门实现prePareMethodName() 方法再调度一个内部的prepare函数,而将prepare()函数留空。
分享到:
相关推荐
ModelDriven模式简化了Action类的编写,使得业务逻辑更专注于处理业务,而不是参数绑定。在这个例子中,可能讲解了如何创建Model对象,如何在Action中实现ModelDriven接口,以及如何在JSP页面中使用这些模型属性。 ...
3. 拦截器链开始执行,其中的ParameterInterceptor负责将请求参数绑定到Action实例的属性上,使用OGNL(Object-Graph Navigation Language)表达式解析和设置属性。 4. 如果有自定义的验证拦截器,会在这个阶段执行...
2. 域模型(Domain Model)是Struts2中用于封装业务数据的对象,Action可以直接引用域模型对象,将请求参数绑定到模型中。 以上就是关于Struts2的一些基础知识点,学习Struts2不仅可以帮助理解MVC模式在实际应用中的...
此外,Struts2提供了一个强大的配置机制,可以在struts.xml或struts.properties文件中进行参数绑定、拦截器设置等。例如,你可以指定哪些请求应该映射到哪个Action,以及如何处理异常等。 ```xml ...
- **Struts2**: 使用OGNL进行数据绑定,支持更高级的数据绑定操作。 #### 验证机制 - **Struts1**: 支持ActionForm的内置验证机制,并且可以通过Commons Validator进行扩展。 - **Struts2**: 提供了更强大的验证...
8. **表单处理**:Struts2提供了强大的表单处理能力,可以自动绑定请求参数到Action的属性,实现数据验证,并将错误信息回显到页面。 9. **异常处理**:Struts2通过全局异常映射(Global Exception Mapping)来统一...
3. **拦截器库**:`struts2-convention-plugin.jar`和`struts2-interceptor-plugin.jar`提供了多种内置拦截器,如Params拦截器处理参数绑定,Validation拦截器负责验证,以及Tiles拦截器用于页面布局。 4. **结果...
username=张三`时,Struts2会将`username`参数自动绑定到Action类的`username`属性上。 接下来,我们讨论如何解决Struts2中的乱码问题。在处理中文字符时,乱码是一个常见的问题。Struts2提供了多种方式来处理字符...
当用户提交表单时,Struts2框架会自动将请求参数绑定到Action的相应属性上,简化了数据的处理。 3. **Domain Model(实体模型)** Domain Model是一种设计模式,用于封装业务逻辑和数据。在Struts2中,你可以创建...
SpringMVC入门参数绑定SSM整合 SpringMVC是一种基于MVC模式的Web应用程序框架,它是Spring框架的一个模块,用于开发Web项目。下面是SpringMVC入门参数绑定SSM整合的知识点总结: 一、SpringMVC概述 SpringMVC是...
预设的拦截器如Params拦截器用于参数绑定,Validation拦截器进行字段验证,Exception拦截器处理异常。 此外,笔记可能还会介绍Struts2的插件系统,例如Struts2-convention-plugin,它可以自动根据类名和方法名来...
### Struts2讲义知识点概览 #### 一、Struts2的历史与发展 - **Struts框架的发展历程**: - Struts最初版本发布于2000年,是Java Web开发领域的一个重要里程碑。 - 随着时间的发展和技术的进步,Struts逐渐暴露...
常见的拦截器有Params(处理参数绑定)、Validation(进行数据校验)、Chain(维持请求链)等。开发者可以通过自定义拦截器来扩展框架功能,实现如日志记录、权限检查等功能。 **Struts2的标签** Struts2提供了丰富...
当用户通过表单提交数据时,这些数据可以被Struts2自动绑定到Action方法的参数上。例如,假设我们有一个名为`UserAction`的类,其中有一个处理登录的方法`login(String username, String password)`,那么在界面中...
此外,为了更好地展示数据,可能还需要在Struts2中使用Interceptor(拦截器),例如,`params`拦截器用于将请求参数绑定到Action,`validation`拦截器负责验证表单数据,`workflow`拦截器管理Action的生命周期。...
在Struts2中,这些参数可以直接通过表单元素的`name`属性与Action类中的属性相匹配,无需额外配置即可实现自动绑定。 例如,下面的HTML代码展示了一个简单的表单,其中包含了一个文本框和一个下拉框,分别用于输入...
当用户提交表单时,Struts2框架会自动将请求参数映射到Action类的相应字段,这被称为“自动数据绑定”。这个过程使得开发者能够轻松地处理表单提交的数据,而无需手动解析请求参数。 1. **Map数据绑定**: 在...
3. **Interceptor配置**: 定义拦截器链,如Params拦截器用于参数绑定,Validation拦截器进行表单验证。 **三、拦截器(Interceptors)** Struts2的核心特性之一,拦截器允许在Action执行前后插入额外的功能,如日志...