Struts2 入门 三(Struts Action类的实现方式 接收参数方式 )
实现action类的方式 有三种 只讲你需要记的两种 剩下那一种你就当不存在就好。
第一种 实现 Action 接口
第二种 继承 ActionSupport
Action接收参数的三种方式 :
第一种: 属性 注入
用setter 、getter来实现
注意 domainModel是可以给List集合注入值的 Struts2和hibernate 整合时会经常用到这种方式.
第二种:domainModel(域模型) 附代码:
Model层
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
System.out.println("setName()当前值"+this.name);
this.name = name;
System.out.println("setName()注入后"+name);
}
public int getAge() {
return age;
}
public void setAge(int age) {
System.out.println("setAge()当前值"+this.age);
this.age = age;
System.out.println("setAge()注入后"+age);
}
}
Action层:
public class UserAction extends ActionSupport {
//一般是写成private User user;让Struts容器帮你创建对象
//但是写成下面的也没错
private User user=new User();
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
public User getUser() {
System.out.println("getUser()");
return user;
}
public void setUser(User user) {
System.out.println("setUser()");
this.user = user;
}
}
使用Domain Model接收参数<a href="user/user!add?user.name=a&user.age=8">添加用户</a>
附上代码结果:
private User user=new User();这种情况
getUser()
setAge()当前值0
setAge()注入后8
getUser()
setName()当前值null
setName()注入后a
name=a
age=8
private User user;这种情况
getUser()
setUser()
setAge()当前值0
setAge()注入后8
getUser()
setName()当前值null
setName()注入后a
name=a
age=8
结论: domainModel 注入 先调用对象getter方法 判断对象是否为null
为null的话 帮你创建一个User对象
调用对象的setter方法注入
然后调用属性的setter方法把属性值注入
不为null的话
直接调用属性的setter方法
第三种ModelDriven(模型驱动)
使用ModelDriven接收参数<a href="user/user!add?name=a&age=8">添加用户</a>
implements ModelDriven<User>
private User user = new User();
public User getModel() {
return user;
}
相关推荐
本教程将介绍如何使用IntelliJ IDEA和Struts2框架实现Action类接收参数的三种常见方式,这对于JavaWeb开发初学者来说是极其重要的基础知识。 首先,我们需要了解Struts2框架。Struts2是一个基于MVC(Model-View-...
- Struts2支持依赖注入(DI),允许你在Action类中声明字段,Struts2会自动根据配置填充这些字段的值,简化了对象的创建和管理。 8. **国际化**: - Struts2支持多语言环境,你可以创建资源文件(如`messages....
Struts2框架提供了Action类,这个类是控制器的角色,负责接收用户的请求并调用相应的业务逻辑。 1. **配置Struts2**: - 首先,你需要在项目中添加Struts2的依赖库,这通常通过Maven或Gradle实现。 - 接着,配置...
Struts2是一个强大的Java web开发框架,它是SSH(Spring、Struts、Hibernate)三...理解并掌握这些核心概念,是成功入门Struts2的关键步骤。通过实践,可以进一步熟悉其工作原理,从而更好地利用Struts2进行项目开发。
Struts2支持Action的动态方法调用,允许Action类根据请求参数动态选择要执行的方法,而无需预先在struts.xml中硬编码。 **八、Action通配符(wildcard)的配置** 通配符配置允许为一组相似的Action定义一个通用配置,...
使用`org.apache.struts2.dispatcher.multipart.MultiPartRequest`类,结合Action中的属性字段,可以轻松实现文件上传功能,并对上传的文件进行合法性检查和大小限制。 5. **i18n(国际化)**:Struts2提供了很好的...
- **Action实现**:在Struts1中,Action类需要继承`org.apache.struts.action.Action`,而在Struts2中,Action类通常继承自`com.opensymphony.xwork2.ActionSupport`,提供了一系列预定义的方法和功能。 #### 四、...
本教程旨在帮助初学者快速入门Struts2,了解其基本概念和应用。 一、Struts2简介 Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,继承并改进了其前任的许多特性。Struts2的核心是Action类,它负责...
控制器(Controller)由Struts2的Action类扮演,接收请求,调用模型,然后将结果返回给视图。 Struts2提供了多种结果类型(Result),如dispatcher(默认的,用于转发到JSP页面)、stream(用于下载文件)等。...
而自动验证则是在Action类上使用注解或在`struts.xml`中配置验证规则,Struts2会在Action执行前自动进行验证,如果验证失败,会将错误信息传递给视图显示。 ### 国际化实现 为了支持多语言环境,Struts2提供了强大...
此外,Struts2还提供了强大的插件系统,比如 strut2-convention-plugin 插件,它可以简化配置,通过约定优于配置的方式自动绑定Action和方法。还有 strut2-dojo-plugin 插件,支持Ajax和Dojo库,为Web应用添加丰富的...
- **编写Action类**:Action类是业务逻辑的核心,它接收来自JSP的请求,处理数据,并通过返回结果映射来决定重定向到哪个JSP页面。例如,创建一个简单的Hello World Action: ```java public class HelloWorldAction...
Action类通常会接收到请求参数,并通过调用Service层进行处理,最后返回一个表示结果的字符串,决定视图如何渲染。 2. **转换器(Converter)**: - 转换器是Struts2中的魔术师,它允许开发者自定义类型转换,将HTTP...
1. **Action类**:在Struts2中,业务逻辑主要由Action类处理。Action类是用户请求的接收者,负责执行相关的业务逻辑,并通过Result返回响应。 2. **配置文件**:Struts2的配置主要分为两个部分:`struts.xml`和`...
在Struts2中,Action类充当控制器角色,而JSP通常作为视图。 3. **配置文件详解**: - `struts.xml`:这是Struts2的核心配置文件,用于定义Action、结果类型、拦截器等。在这里,你可以看到Action的映射,以及每个...