什么是struts2,什么是struts2框架

  什么是struts2,什么是struts2框架

  json-lib-2.1.jar

  版本号可能不一样,这两个包也是MyEclipse在创建Struts2项目时包含的。

  2.setter和getter

  Action类中私有成员变量的Setter和getter方法会自动转换成Struts2框架下HttpServletrequest对象的getParameter方法和setAttribute方法,也就是说setter方法的本质是从request中取出与变量名同名的数据赋给变量;getter方法是将变量名和值分别作为键和值存储在请求对象的属性中。

  考虑到这一点,显然不需要为不需要反馈给视图层的Action私有变量设置它的getter方法。这在JSON生成中尤其重要,因为额外的getter方法会将私有变量的值传递给JSON。

  3.3中JSON的生成机制。动作类

  对于需要JSON的动作,最好不要实现modelDriven接口。如上所述,实现ModelDriven接口的action类必须实现getModel方法,这将在生成的JSON数据中产生一个名为“Model”的数据字符串。可能会暴露一些客户端不需要知道的数据,也会增加JSON数据的大小。

  JSON数据是根据Action类中getter方法的返回值自动组装的,也就是说完全不需要重写execute方法。JSON生成机制(上面两个必选包中提供的方法)会直接从setter方法获取请求中提供的值,自动组装getter方法提供的返回值。如果期间有其他功能操作,如计算、数据库查询、数据重组等。它们可以写入getter方法或execute方法中进行统一执行。

  这里需要注意的是,execute方法的返回值字符串是无效的,可以随意设置,因为后面的配置文件中不会用到。

  getter方法返回值的类型可以是基本数据类型、字符串类、集合类(List、Map等。)和打包类,如Double和Integer。这些都不会影响JSON的生成,因为结果是字符串类型的;但是集合类在生成的时候会自动迭代,所以它自己的集合类型(列表,映射表等。)在生成的结果中不会改变。

  因此,在Action类中,可以将所有结果数据保存在一个列表或映射中,然后通过getter方法输出,也可以设置多个getter方法来返回不同类型和变量的数据。JSON中这些数据的名称与getter方法名称一致。

  4.配置文件的设置

  与基本操作相比,生成JSON的操作在配置文件struts.xml中有两个主要区别:

  1.不能和基本动作配置在同一个包中,新包必须从(extends)json-default名称空间扩展而来;

  2.result标签可以不包含name属性(因为没用),但必须包含type属性,值必须是“json”,即结果type="JSON"/result,表示这是JSON数据,不需要跳转到页面。

  5.例子

  JsonAction类:

  包com

  导入Java . util . ArrayList;

  导入Java . util . hashmap;

  导入Java . util . list;

  导入Java . util . map;

  导入com . open symphony . xwork 2 . action support;

  公共类JsonAction扩展ActionSupport {

  private static final long serialVersionUID=4905130009784850861 l;

  私有字符串用户名;

  私有字符串密码;

  //个人分发名单字符串结果;

  私有映射字符串,字符串映射;

  public void setUsername(字符串用户名){

  this.username=用户名;

  public void setPassword(字符串密码){

  this.password=密码;

  //公共列表字符串getResult() {

  //返回this.result

  公共地图字符串,String getResult() {

  返回地图;

  公共字符串execute() {

  //result=新的ArrayList字符串

  //result.add(用户名);

  //result.add(密码);

  map=new HashMap String,String

  map.put(usr ,用户名);

  map.put(pwd ,密码);

  map.put(logon , true );

  返回成功;

  }

  struts.xml:

  ?xml版本=1.0 编码=UTF-8 ?

  ! DOCTYPE Struts PUBLIC -//Apache software Foundation//DTD Struts Configuration 2.1//EN http://Struts . Apache . org/dtds/Struts-2.1 . DTD

  支杆

  常量名称=struts.devMode 值=真/常量

  包名=json 扩展=json-default

  动作名称=loginJson

  结果类型= JSON /结果

  /操作

  /包

  /struts

  结果:

什么是struts2,什么是struts2框架