Struts2中给开发者提供了三种接收用户输入参数的机制,我们可以根据自己项目的需求和个人习惯来选择适合自己的接收机制。
今天分别使用着三种机制来实现了一个简单的用户登录.
三种机制:
1、使用Action类中的属性接收用户输入参数
2、使用领域模型对象接收用户输入参数
3、使用Struts2独有的模型驱动接收用户输入参数
第一种是我们入门时最先接触的一种方式,很简单、也很容易接受和理解。转发时在页面获取参数
值为为:
<s:property value="username" />
第二种是我们开发项目时最为常用的,对于一个属性相对比较对的时候,如果把属性都写到Action中
那会把Acton类弄的很乱,所以属性较多的时候最好选择第二种方式来接收用户输入参数。转发时在界
面获取参数值为:
<s:property value="user.username" />
第三种方式比较特殊,它是Struts2种独有的一种接收用户输入的机制,想在项目中使用模型驱动
(ModelDriven)需要让Action实现com.opensymphony.xwork2.ModelDriven 接口,使用它
的getModel()方法来通知Struts2要注入的属性类型,并且声明属性时一定要实例化,但不需get,
set方法(这是与第二种方式的区别)。
package com.lsc.alan.action;
import com.lsc.alan.vo.User;
import com.opensymphony.xwork2.ModelDriven;
/**
* 使用模型驱动来接受用户输入,需要实现ModelDriven接口
* @author Alan
* 时间:2009年7月10日
*/
public class LoginAction3 implements ModelDriven<User>{
/** 领域模型User对象 **/
private User user = new User();
public User getModel() {
return user;
}
public String execute(){
if (user.getUsername().equals("Alan") && user.getPassword().equals("Alan")){
return "success";
} else {
return "failure";
}
}
}
转发时在界面获取参数值为:
<s:property value="username" />
个人比较倾向于第三种方式,使用模型驱动来接收用户输入参数。本来第二种方式是大家最
容易接受的,但是使用领域模型这种方式并且jsp界面使用Struts2的标签的话,就会有个问
题,我们在脚本中获取某个属性的值时属性的唯一标识“name ”的值就为:user_username,
如果配置acton的时候有命名空间的话,则“name”的值就为:nsuser_user_username,
拼起来就会很长!如果想解决这个问题,我们可以个标签唯一标识id属性。第三种方式在这方面
就处理的很好了,跟第一种方式一样,“name”就是唯一标识。
分享到:
- 2009-07-10 21:54
- 浏览 3426
- 评论(0)
- 论坛回复 / 浏览 (0 / 2548)
- 查看更多
相关推荐
在Struts2中,接收参数是一项基础且重要的功能,它允许开发者从HTTP请求中获取用户输入的数据,进而处理业务逻辑。这篇博客文章可能是关于如何在Struts2中有效地接收和处理这些参数的探讨。 首先,Struts2通过...
总的来说,Struts2通过Action类和Interceptor机制实现了灵活的参数接收。理解这一过程对于开发和维护Struts2应用至关重要,同时也为自定义拦截器或扩展功能提供了基础。通过源码分析,开发者可以更深入地了解Struts2...
在"【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法"中,我们主要探讨的是如何在Struts2中有效地获取并处理用户提交的数据。以下是对这三种方法的详细解析: ### 1. 使用Action属性 Struts2的核心是...
总结来说,Struts2提供了灵活的输入校验机制,允许开发者通过Action的`validate()`方法或者XML配置文件来定义验证规则。无论选择哪种方式,都能有效地确保从客户端接收的数据符合预期,从而提高了应用的安全性和用户...
1. 类型转换器:Struts2将接收到的字符串参数转换为相应的数据类型,并将这些值赋给Action的属性。如果在此过程中发生异常,异常信息会被保存并由`conversionError`拦截器处理。 2. 客户端校验:Struts2支持在...
Struts2 框架提供了方便的输入验证机制,但是如果开发者不正确地使用这些机制,可能会导致安全漏洞。例如,如果开发者没有正确地验证用户输入,可能会导致 SQL 注入或跨站脚本攻击(XSS)。 2. 默认方法调用问题 ...
Struts1.0和Struts2是两种不同的Java EE Web应用程序框架,虽然它们都属于Apache Struts项目,但在设计和实现上有显著的区别。Struts2是基于WebWork框架的升级版,它吸取了Struts1的优点并进行了诸多改进,提高了...
这个项目案例和视频教程主要针对初学者,旨在深入理解如何使用Struts2的ModelDriven机制来接收和传递参数。 ModelDriven接口是Struts2提供的一种设计模式,它的核心思想是将业务模型与Action类紧密结合。通过实现...
- **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View) 和控制器(Controller) 三个部分。 - **模型**:主要负责处理业务逻辑和数据访问,常用 JavaBean 或 EJB 实现。 - **视图**:负责向...
当用户通过表单提交数据时,这些数据可以被Struts2自动绑定到Action方法的参数上。例如,假设我们有一个名为`UserAction`的类,其中有一个处理登录的方法`login(String username, String password)`,那么在界面中...
通过上述四个方面的介绍,我们可以看到Struts2提供了一套全面而强大的参数传递机制。无论是简单的字符串、数字类型还是复杂的数组、列表、映射甚至文件,Struts2都能够通过OGNL和ValueStack实现高效的处理。此外,...
通过这个Struts2登录DEMO,你可以了解并实践如何在实际项目中实现用户登录功能,包括接收用户输入、验证、处理异常以及显示结果。同时,这也是一个很好的起点,帮助你进一步学习Struts2框架的其他高级特性,如插件、...
在Servlet依赖性上,Struts1的Action直接依赖于Servlet API,执行方法接收HttpServletRequest和HttpServletResponse参数。而Struts2的Action与容器解耦,尽管仍能访问请求和响应,但通过其他机制减少了对Servlet API...
13. 表单验证:Struts2提供了强大的表单验证功能,可以通过注解或XML配置文件定义验证规则,对用户输入进行校验。 十一、插件支持 14. 插件生态:Struts2拥有丰富的插件库,如Freemarker模板引擎插件、Tiles布局...
在这个用户管理后台系统源代码中,开发者可以深入理解Struts2的核心概念和实现机制。 1. **Struts2框架基础**: Struts2是基于Apache Jakarta的ActionServlet和Tiles框架发展而来的,它提供了模型驱动的架构,支持...
在Servlet依赖上,Struts1的Action直接依赖于Servlet API,这意味着Action的execute方法接收HttpServletRequest和HttpServletResponse参数,这不利于单元测试。而Struts2 Action不再直接依赖于容器,可以独立测试,...
总结来说,"struts2例子2"是一个演示了用户输入参数传递和显示的案例,涉及到了Struts2的Action、配置、拦截器和JSP视图的使用。通过这个例子,开发者可以学习到如何在实际项目中有效地处理用户请求并展示响应。
而Cookie是Web应用程序中常见的一种客户端存储机制,用于在用户浏览器上持久保存少量数据。在实现自动登录功能时,Struts2和Cookie的结合使用可以极大地提升用户体验,让用户在访问网站时无需反复输入用户名和密码。...
在Struts2中,Action类作为控制器接收用户请求,并调用相应的业务逻辑进行处理。然后,通过Result将处理结果返回给视图。此外,Struts2还提供了丰富的拦截器机制,可以方便地实现如权限控制、日志记录等功能。 其次...