`

转 Struts2使用之如何接受请求和表单类型

    博客分类:
  • java
阅读更多
时间:2009-11-05 13:56    来源:未知    作者:梁章坪
 Action为了执行操作,并为数据库持久化对象提供数据,就必须要访问请求字符串和表单中的数据。

Struts2采用了JavaBean的风格——要访问数据的话,就给字段提供一个getter和setter,要访问请求字符串和表单也是一样的道理。每一个请求字符串和表单的值都是一个简单的名/值对,所以要设定一个特定名称的值的话,就要为它提供一个setter。比如,如果一个JSP调用了“/home.action?framework=struts&version=2”这样一个请求,那么action就应该提供如下两个setter:“setFramework( String frameworkName )”和“setVersion( int version )”。

我们可以看到,例子中的setter并不是只接受String类型的参数。在默认情况下,Struts2可以把String类型的值转换成action所需要的类型,这条规则对于所有的primitive类型和基本对象类型的值都适用,当然你也可以对其进行配置,让它也适用于你所创建的类。Struts2还可以在更加复杂的对象图中进行定位后赋值,比如说如果一个表单元素的名字是“person.address.home.postcode”,其值为“2”,那么Struts2就会调用“getPerson().getAddress().getHome().setPostcode(2)”这个方法。

Struts2处理请求和表单类型主要有三种方法:

l         利用action类的属性接收用户输入

直接在Action类中写个属性与页面传入的参数的的名字一样,这样既可接收用户输入。主要应用于用户输入参数少的时候使用。例如:登录案例

页面:

  1. 姓名:<input type="text" name="username"><br>  
  2.   
  3. 密码:<input type="text" name="password"><br>  

Action类中只要有username、password属性就可以接收用户输入的值

  1. private String username;   
  2.   
  3. private String password;   

 


l         利用领域对象接收用户输入

领域对象就是一个javaBean,不需要继承任何一个类。这样对象用来接收用户传入的值在Action建一个JavaBean的对象属性。例如:登录案例

JavaBean  User

  1. private String username;   
  2.   
  3. private String password;   

Action类

  1. private User user = null;   

页面

  1. 姓名:<input type="text" name="user.username"><br>  
  2.   
  3. 密码:<input type="text" name="user.password"><br>  

 


l         使用ModelDriven模式接受用户输入

模型驱动接收用户输入是在领域对象基础上进行修改。首先也需要一个JavaBean对象,然后在Action类要实现

com.opensymphony.xwork2.ModelDriven<T>接口,实现getModel()方法,返回javaBean类对象,并在Action中申明javaBean类对象且要new对象。例如:

javaBean User

  1. private String username;   
  2.   
  3. private String password;   

Action类

  1. public class LoginAction extends ActionSupport    
  2.   
  3. implements ModelDriven<User>{   
  4.   
  5.     private User user = new User();    
  6.   
  7.      public User getModel() {   
  8.   
  9.        return user;   
  10.   
  11.     }   

页面

  1. 姓名:<input type="text" name="username"><br>  
  2.   
  3. 密码:<input type="text" name="password"><br>  

 

分享到:
评论

相关推荐

    struts2简单实例(类型转换)

    Struts2框架提供了一种机制,即类型转换器(Type Converter),用于自动将请求参数转化为预期的数据类型。 在Struts2中,实现类型转换主要有两种方式: 1. 使用内置的类型转换器:Struts2已经内置了一些常见的类型...

    Struts2实例 国际化 类型转换 struts标签

    总结起来,这个Struts2实例项目通过整合国际化、类型转换和Struts2标签,构建了一个完整的用户管理系统,展示了如何在实际开发中高效地处理Web请求,实现业务逻辑,并提供多语言支持。这样的练习有助于提升开发者对...

    struts2类型转换和国际化

    当用户通过表单提交请求时,Struts2会自动尝试将请求参数转换为Action类中相应字段的类型。这一过程遵循以下步骤: 1. 用户发起请求,Struts2根据`struts.xml`配置文件找到对应的Action。 2. 在Action中,Struts2...

    Struts2 处理多个请求

    总结来说,Struts2通过动态方法调用、通配符映射和拦截器+`@Action`注解等方式,提供了灵活的多请求处理能力,使Action类能够更好地组织和管理不同的业务逻辑。开发者可以根据项目需求和代码可维护性选择适合的方法...

    struts2 表单标签的使用

    此外,Struts2表单标签还可以与其他标签结合使用,如`&lt;s:actionerror&gt;`、`&lt;s:fielderror&gt;`和`&lt;s:property&gt;`,以显示验证错误信息或动态显示数据。`&lt;s:actionerror&gt;`显示全局错误,`&lt;s:fielderror&gt;`显示特定字段的...

    应用Struts2处理表单数据

    综上所述,"应用Struts2处理表单数据"这个主题涵盖了Struts2框架中的诸多关键概念,包括Action设计、表单数据绑定、结果处理、拦截器、配置、表达式语言以及验证和异常处理机制。这些知识点对于理解和开发基于Struts...

    struts2类型转换 拦截器 校验的例子

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...

    Struts2解决表单重复提交

    默认情况下,Struts2使用的是dispatcher类型的forward跳转。为了避免刷新页面导致的重复提交,可以将结果视图的跳转类型设置为redirect,即将页面重定向到另一个视图,这样即使刷新也不会回退到原表单页面。除了直接...

    struts2版注册表单.rar

    在表单提交后,Struts2会使用拦截器(Interceptor)机制来处理请求。拦截器是Struts2的一个重要特性,它可以插入到Action调用的前后,执行预处理或后处理任务,如登录检查、日志记录、数据校验等。在这个注册表单...

    整合了struts2 jquery的formValidator表单验证的页面代码

    这个项目中的代码示例可以作为学习和参考,帮助开发者理解如何在实际项目中整合Struts2和jQuery的formValidator,提高表单验证的效率和用户体验。对于初学者来说,深入研究这个示例有助于掌握Struts2和jQuery在实际...

    struts2 使用action属性接收中文参数(post提交)

    在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...

    Struts2表单数据获取项目

    Struts2是一个强大的Java web应用程序开发框架,它简化了MVC(模型-视图-控制器)架构的实现,使得开发者可以更专注于业务逻辑,而不用过多地处理底层的HTTP请求和响应细节。在这个名为"Struts2表单数据获取项目"的...

    struts2 类型转换器

    标题中的“Struts2 类型转换器”主要指的是Struts2框架中处理请求参数到Action类属性绑定过程中的类型转换机制。在HTTP请求中,表单数据通常以字符串形式传递,而Action类的属性可能是各种类型,如整型、浮点型、...

    struts1和struts2的区别

    - **Struts2**: 直接使用Action来处理表单数据,不再需要专门的ActionForm。Action可以是一个普通的Java对象,并且可以通过标签库直接访问其属性。此外,Struts2还支持ModelDriven模式,允许使用模型对象来代替...

    Struts2文件上传下载和表单重复提交问题

    然后,在Action类中创建一个`java.io.File`或者`org.apache.struts2.dispatcher.multipart.FileItem`类型的字段来接收上传的文件,并使用`@FileUpload`注解标记。最后,处理请求时,框架会自动将上传的文件内容填充...

    struts2和tomcat使用

    Struts2和Tomcat是Java ...对于初学者,可以从提供的"Struts2入门教程.pdf"开始,逐步了解和掌握Struts2框架的使用;而对于Tomcat的深入理解,可以阅读"Tomcat工作原理祥解.pdf",这将有助于优化应用的性能和部署策略。

    Struts2视频教程

    - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。了解如何编写Action类、设置其属性以及处理请求参数至关重要。 - **Result配置**:Result用于指定Action执行后的结果...

    struts2接受表单传过来的用户名和密码

    Struts2是一个强大的Java web框架,它简化了MVC(模型-视图-控制器)架构的实现,使得...总的来说,Struts2通过其强大的MVC模型,使得接收和处理表单数据变得简单,但同时也需要注意安全性问题,确保用户数据的安全。

    struts2jar包

    在使用Struts2进行开发之前,我们需要先将Struts2的jar包引入到项目中,这样才能利用其提供的API和服务。 Struts2的核心jar包通常包括以下几个部分: 1. **struts2-core.jar**:这是Struts2的核心库,包含了框架的...

Global site tag (gtag.js) - Google Analytics