`
guobinperfect
  • 浏览: 47615 次
  • 性别: 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(附源码)

    2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章动作与结果 32 3.1 动作类 32 3.2 如何访问资源 34 3.2.1 ServletActionContext对象 34 3.2.2 Aware接口 35 3.2.3 通过Aware接口访问资源 38 3.3 把静态参数...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章 动作与结果 32 3.1 动作类 32 3.2 如何访问资源 34 3.2.1 ServletActionContext对象 34 3.2.2 Aware接口 35 3.2.3 通过Aware接口访问资源 38 3.3 把静态参数传递给...

    java面试题

    解析XML文档有哪几种方式? 14 28. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 15 29. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)...

    SSS框架详解

    ActionServlet 负责将请求映射到对应的业务逻辑对象,并将请求参数传递给对应的业务逻辑对象。 请求映射 Struts 框架的请求映射机制是通过 ActionMapping 节点来实现的。ActionMapping 节点用于配置请求映射关系,...

    外文翻译 stus MVC

    Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control...

    千方百计笔试题大全

    21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...

    java面试宝典

    21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,...

    java基础题 很全面

    解析XML文档有哪几种方式? 12 49. 你在项目中用到了xml技术的哪些方面?如何实现的? 12 50. 简述synchronized和java.util.concurrent.locks.Lock的异同 ? 13 51. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序...

    JAVA面试题最全集

    76.EJB有哪几种?区别是什么? 77.JavaBean与EJB有什么区别? 78.软件开发生命周期有哪几个阶段? 79.软件开发有哪些因素? 80.软件开发中如何进行版本控制? 81.UML中,类视图如何表示类中的继承与聚合? 82.客户端...

    java+mysql实现的代码分享网(所有源码已开源,效果可看网址:www.admintwo.com)

    前台渲染是采用的jsp技术,为了保证网站的速度,我使用了几种方法: 1、我将重复的代码保存成单独的jsp文件然后引入(这样的好处就是重复的jsp文件只会加载一次,然后浏览器缓存,下次加载速度会提升)。比如,我将...

    超级有影响力霸气的Java面试题大全文档

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    java 面试题 总结

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为...

    freemarker总结

    5、 方法:通过传递的参数进行计算,以新对象返回结果 方法变量通常是基于给出的参数计算值在数据模型中定义。 6、 用户自定义FTL指令:宏和变换器 7、 节点 节点变量表示为树型结构中的一个节点,通常在XML...

Global site tag (gtag.js) - Google Analytics