`
guobinperfect
  • 浏览: 48408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

struts参数传递的几种方式

阅读更多
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 的接受参数的几种方式

    ### Struts2 接受参数的几种方式 #### 第一种方式:直接在 Action 中设置变量 这种方式是最直接的参数接收方式。当从前端传递参数到后端时,我们需要确保 Action 类中有与这些参数名称相匹配的变量。例如,如果...

    Struts2的三种传值方式比较(附demo)

    Struts2作为一款流行的Java Web框架,为开发者提供了多种传递数据的方式,使应用程序能更灵活地处理用户输入和展示结果。在本篇文章中,我们将详细探讨Struts2的三种主要的传值方式,并通过一个简单的Demo来加深理解...

    Struts2学习笔记(5)-参数传递方法

    在本文中,我们将深入探讨几种在Struts2中进行参数传递的方法。 1. **Action中直接参数法** 这是最基本的参数传递方式,通过在URL中直接附带参数,如`user!add?name=a&age=8`。在上述例子中,`name`和`age`是传递...

    经典struts2分页方法 JAVA_WEB必备分页 源码

    综上所述,经典Struts2分页方法涉及了Action、Model、DAO、结果映射、视图、拦截器、JSP/Freemarker标签库、URL参数、分页算法和最佳实践等多个方面。通过学习和实践这些知识点,Java Web开发者能够更好地理解和应用...

    struts2分页效果第二种

    Struts2提供了几种方式来实现这个功能,第二种方法可能是指使用自定义拦截器或插件。例如,可以使用Struts2的DisplayTag库,它是一个强大的表格和分页标签库。在JSP中,我们可以这样写: ```jsp ${pageBean....

    JS调用Struts中的Action

    下面将详细介绍几种常见的JavaScript调用Struts Action的方法: - **通过修改URL来触发Action** ```javascript function formSubmit(url) { document.forms[0].action = url; document.forms[0].submit(); } ...

    struts2中action如何获取jsp页面参数1.rar

    要从JSP页面传递参数到Action,通常有以下几种方式: 1. **使用表单提交**:在JSP页面中,可以创建一个HTML表单,其中的输入字段可以通过`name`属性与Action类的属性进行映射。例如,JSP页面中的表单可能如下所示:...

    Struts 1 学习资料

    5. 在Action的execute方法中,ActionForm会被用来绑定请求参数并传递给业务层。 总的来说,Struts 1提供了一种结构化的MVC框架,使得开发者能够更好地组织和管理Web应用程序的代码。虽然现代Web开发中已经有更先进...

    struts2的API耦合与动态方法调用

    首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts2中用于传递请求上下文信息的核心类。通过`ActionContext.getContext()`可以获得当前线程的ActionContext实例。这个上...

    struts 体系结构

    8. **Tiles**:Tiles是Struts的一个扩展,提供了一种更灵活的方式来组织和组合页面布局。它允许将一个大的页面拆分为多个组件,便于重用和维护。 9. **Internationalization (i18n)**:Struts支持多语言,通过资源...

    Struts完整框架打开即用

    3. **Interceptor(拦截器)**:拦截器是Struts2的一个强大特性,它们是实现AOP(面向切面编程)的一种方式,可以在Action执行前后执行一些通用操作,如日志记录、权限检查等。Struts2默认提供了许多内置拦截器,如...

    struts2.1完整jar包

    在Struts2.1中,有几个关键的知识点值得我们深入探讨: 1. **Action类与Result**:Struts2中的核心组件是Action类,它是业务逻辑的载体。开发者需要创建Action类,实现execute()方法,这个方法将处理来自用户的请求...

    struts+jstl

    Struts是Apache软件基金会下的一个开源MVC(Model-View-Controller)框架,它主要用于构建基于Java Servlet的Web应用程序,提供了一种组织和控制应用程序流程的方式。而JSTL(JavaServer Pages Standard Tag Library...

    struts 中所需要的包

    5. **struts-faces**: 与JavaServer Faces(JSF)集成,提供了一种在Struts应用中使用JSF组件的方式。 6. **struts-scripting**: 支持使用Groovy、JavaScript等脚本语言编写Action。这为开发者提供了更多的选择,...

    struts-xwork-core源码

    Struts2提供了注解和XML配置两种方式来定义验证规则。 5. **Interceptor(拦截器)**: - 拦截器是Struts2的一大特色,它们在Action执行前后运行,可以实现日志记录、事务管理、权限检查等功能。Struts2的许多功能...

    Struts2动态方法调用

    例如,我们可以使用jQuery的`$.ajax`或`$.post`方法,配合Struts2的ActionContext,将请求参数传递给服务器。在服务器端,Struts2会解析这些参数,根据配置找到对应的方法进行执行。这种方式使得前端和后端的交互...

    struts2.1.8

    5. **Tiles插件**:虽然不是Struts2的核心部分,但Tiles插件可以与Struts2结合使用,提供了一种组织和重用页面布局的方式。它允许开发者创建可复用的页面片段,然后在多个页面中组合使用。 6. **国际化(i18n)支持...

    struts所需jar包

    在Struts2中,OGNL负责Action与视图之间的数据传递,以及Action方法参数的注入。 4. **freemarker.jar**:FreeMarker是一个模板引擎,用于动态生成HTML、XML或其他文本格式的输出。Struts2支持FreeMarker作为视图...

    jsp+struts小项目-1

    Struts1.2提供了一种结构化的方式来处理HTTP请求,管理视图和控制器之间的交互,以及处理业务逻辑。 首先,项目中的“javabean”被用来封装数据。JavaBean是一种符合特定规范的Java类,通常用于存储和传递数据。...

Global site tag (gtag.js) - Google Analytics