Struts2接收参数的几种方式:
1. 用Action的属性:
在action里面定义要接收的参数,并提供相应的setter,getter,可以和提交参数的名称一致,并不用做数据类型的转换。
如:
Java代码
1. public class UserAction extends ActionSupport {
2. private String password;
3. pirvate String name;
4.
5. //……对应的setter,getter方法
6.
7. public void execeute() {
8. System.out.println(name +”:”+passowrd);
9. return “success”;
10.
11. }
12.
13. }
public class UserAction extends ActionSupport {
private String password;
pirvate String name;
//……对应的setter,getter方法
public void execeute() {
System.out.println(name +”:”+passowrd);
return “success”;
}
}
相应提交方式可以用get和post,如:userAction?password=admin&name=admin
2. 使用Domain Model:
在Action里面不存很多的属性,而是用Model层用到的模型,保存它的一个对象
如:
Java代码
1. public class UserAction extends ActionSupport {
2.
3. private User user;
4.
5. //……对应的setter,getter方法
6.
7. public void execeute() {
8. System.out.println(user.getName() +”:”+user.getPassowrd());
9. return “success”;
10.
11. }
12.
13. }
public class UserAction extends ActionSupport {
private User user;
//……对应的setter,getter方法
public void execeute() {
System.out.println(user.getName() +”:”+user.getPassowrd());
return “success”;
}
}
提交参数:userAction?user.password=1&user.name=admin;这里面的user指向Action里面的user。
3. 使用DTO--数据传输对象
它的作用是接收参数,传递参数,并不是项目中的实体类。如用户注册时,会用到确认密码,所以要先把参数接收过来,做处理后,再传递给相应方法去创建User对象。
Java代码
1. public class UserDTO {
2.
3. private String name;
4. private String password;
5. private String confirm;
6. //……对应的setter,getter方法
7. }
public class UserDTO {
private String name;
private String password;
private String confirm;
//……对应的setter,getter方法
}
可能的Action
Java代码
1. public class UserAction extends ActionSupport {
2.
3. private UserDTO user;
4.
5. //……对应的setter,getter方法
6.
7. public void execeute() {
8. if(checkdate(userDTO userDTO) )//检查数据{
9. newUser(UserDTO userDTO)//创建User对象
10.
11. System.out.println(user.name +”:”+user.passowrd);
12.
13. return “success”;
14. }
15. return “fail”;
16.
17. }
18.
19. }
public class UserAction extends ActionSupport {
private UserDTO user;
//……对应的setter,getter方法
public void execeute() {
if(checkdate(userDTO userDTO) )//检查数据{
newUser(UserDTO userDTO)//创建User对象
System.out.println(user.name +”:”+user.passowrd);
return “success”;
}
return “fail”;
}
}
提交参数的方式的Domail Model方式的相同。
4.使用ModelDriven:
在创建Action的时候,发现Action实现了ModelDriven接口,去调用 接口的getModel()方法,取到了User。
Java代码
1. public class UserAction extends ActionSupport implements ModelDriven<User> {
2.
3. private User user = new User(); //这里要手动的New下
4.
5. //……对应的setter,getter方法
6.
7. public void execeute() {
8. System.out.println(user.name +”:”+user.passowrd);
9. return “success”;
10.
11. }
12.
13. @Override
14. public User getModel() {
15. return user;
16. }
17. }
public class UserAction extends ActionSupport implements ModelDriven<User> {
private User user = new User(); //这里要手动的New下
//……对应的setter,getter方法
public void execeute() {
System.out.println(user.name +”:”+user.passowrd);
return “success”;
}
@Override
public User getModel() {
return user;
}
}
相应提交方式可以用get和post,如:userAction?password=admin&name=admin
分享到:
相关推荐
### Struts2 接受参数的几种方式 #### 第一种方式:直接在 Action 中设置变量 这种方式是最直接的参数接收方式。当从前端传递参数到后端时,我们需要确保 Action 类中有与这些参数名称相匹配的变量。例如,如果...
Struts2作为一款流行的Java Web框架,为开发者提供了多种传递数据的方式,使应用程序能更灵活地处理用户输入和展示结果。在本篇文章中,我们将详细探讨Struts2的三种主要的传值方式,并通过一个简单的Demo来加深理解...
在本文中,我们将深入探讨几种在Struts2中进行参数传递的方法。 1. **Action中直接参数法** 这是最基本的参数传递方式,通过在URL中直接附带参数,如`user!add?name=a&age=8`。在上述例子中,`name`和`age`是传递...
综上所述,经典Struts2分页方法涉及了Action、Model、DAO、结果映射、视图、拦截器、JSP/Freemarker标签库、URL参数、分页算法和最佳实践等多个方面。通过学习和实践这些知识点,Java Web开发者能够更好地理解和应用...
Struts2提供了几种方式来实现这个功能,第二种方法可能是指使用自定义拦截器或插件。例如,可以使用Struts2的DisplayTag库,它是一个强大的表格和分页标签库。在JSP中,我们可以这样写: ```jsp ${pageBean....
下面将详细介绍几种常见的JavaScript调用Struts Action的方法: - **通过修改URL来触发Action** ```javascript function formSubmit(url) { document.forms[0].action = url; document.forms[0].submit(); } ...
要从JSP页面传递参数到Action,通常有以下几种方式: 1. **使用表单提交**:在JSP页面中,可以创建一个HTML表单,其中的输入字段可以通过`name`属性与Action类的属性进行映射。例如,JSP页面中的表单可能如下所示:...
5. 在Action的execute方法中,ActionForm会被用来绑定请求参数并传递给业务层。 总的来说,Struts 1提供了一种结构化的MVC框架,使得开发者能够更好地组织和管理Web应用程序的代码。虽然现代Web开发中已经有更先进...
首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts2中用于传递请求上下文信息的核心类。通过`ActionContext.getContext()`可以获得当前线程的ActionContext实例。这个上...
8. **Tiles**:Tiles是Struts的一个扩展,提供了一种更灵活的方式来组织和组合页面布局。它允许将一个大的页面拆分为多个组件,便于重用和维护。 9. **Internationalization (i18n)**:Struts支持多语言,通过资源...
3. **Interceptor(拦截器)**:拦截器是Struts2的一个强大特性,它们是实现AOP(面向切面编程)的一种方式,可以在Action执行前后执行一些通用操作,如日志记录、权限检查等。Struts2默认提供了许多内置拦截器,如...
在Struts2.1中,有几个关键的知识点值得我们深入探讨: 1. **Action类与Result**:Struts2中的核心组件是Action类,它是业务逻辑的载体。开发者需要创建Action类,实现execute()方法,这个方法将处理来自用户的请求...
Struts是Apache软件基金会下的一个开源MVC(Model-View-Controller)框架,它主要用于构建基于Java Servlet的Web应用程序,提供了一种组织和控制应用程序流程的方式。而JSTL(JavaServer Pages Standard Tag Library...
5. **struts-faces**: 与JavaServer Faces(JSF)集成,提供了一种在Struts应用中使用JSF组件的方式。 6. **struts-scripting**: 支持使用Groovy、JavaScript等脚本语言编写Action。这为开发者提供了更多的选择,...
Struts2提供了注解和XML配置两种方式来定义验证规则。 5. **Interceptor(拦截器)**: - 拦截器是Struts2的一大特色,它们在Action执行前后运行,可以实现日志记录、事务管理、权限检查等功能。Struts2的许多功能...
例如,我们可以使用jQuery的`$.ajax`或`$.post`方法,配合Struts2的ActionContext,将请求参数传递给服务器。在服务器端,Struts2会解析这些参数,根据配置找到对应的方法进行执行。这种方式使得前端和后端的交互...
5. **Tiles插件**:虽然不是Struts2的核心部分,但Tiles插件可以与Struts2结合使用,提供了一种组织和重用页面布局的方式。它允许开发者创建可复用的页面片段,然后在多个页面中组合使用。 6. **国际化(i18n)支持...
在Struts2中,OGNL负责Action与视图之间的数据传递,以及Action方法参数的注入。 4. **freemarker.jar**:FreeMarker是一个模板引擎,用于动态生成HTML、XML或其他文本格式的输出。Struts2支持FreeMarker作为视图...
Struts1.2提供了一种结构化的方式来处理HTTP请求,管理视图和控制器之间的交互,以及处理业务逻辑。 首先,项目中的“javabean”被用来封装数据。JavaBean是一种符合特定规范的Java类,通常用于存储和传递数据。...