Struts2 中继承ActionSupport类,都需要哪些jar包啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2 中继承ActionSupport类,都需要哪些jar包啊?相关的知识,希望对你有一定的参考价值。

参考技术A 如果单是继承ActionSuppor类 就需要xwork-2.1.2.jar
如果要搭建struts2 就要这六个包
struts2-core.jar——Struts2的核心包
xwork-core.jar——Command模式框架,WebWork和Struts2都基于xwork
commons-logging.jar——Java日志工具类包
commons-fileupload-1.2.1.jar——文件上传
freemarker.jar——模板引擎,一个基于模板生成文本输出的通用工具
ognl.jar——Object-Graph Navigation Language,表达式语言,用来获取和设置Java对象属性
可选包
antlr.jar——语法分析器
aopalliance.jar——AOP联盟标准接口
classworlds.jar——class对象管理
commons-beanutils.jar——Bean处理工具类包 这六个本回答被提问者和网友采纳
参考技术B commons-fileupload-1.2.1.jar
commons-logging-1.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
参考技术C commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
就这7 个包
参考技术D 上网找,Struts2开发用的架包

在 Mixin 中继承父类属性

【中文标题】在 Mixin 中继承父类属性【英文标题】:Inheriting parent class attributes in Mixin 【发布时间】:2020-10-29 18:25:38 【问题描述】:

我正在尝试从 mixin 中的继承类访问属性

class BaseItem
     public id:string;
     constructor(id:string) 
        this.id =id;  
     
 

abstract class ConfigMixin<K extends BaseItem>
        public saveConfig() 
            const repo = getRepository(Entity);
            repo.update(
                 
                    id: this.id // Typescript error
                ,
                
                    ...this.getConfig(),
                ,
            );
        


class BaseDevice extends BaseItem
     constructor(id:string) 
        super(id);   
     
 
export interface BaseDevice extends ConfigMixin<BaseDevice> 
applyMixins(BaseDevice , [ConfigMixin]);

但是我收到以下错误: TS2339:“ORCASmartLightConfig”类型上不存在属性“id”。

【问题讨论】:

【参考方案1】:

我可以想到两种方法:

    坚持 mixin 的严格封装。 Mixin 是自立的,不知道它们将被混合到哪里。这意味着一个 mixin 不应该知道它已经被混合到一个类中有一个id 字段:
// The first approach sticks to the strict encapsulation of mixins
export abstract class ConfigMixin 
  // Your mixin will receive all the things it needs as parameters
  // so every time you call saveConfig you need to pass the id
  public saveConfig(id: string) 
    console.log(id);
  


// The base class
class BaseItem 
  constructor(public id: string) 


// An implementation of subclass of BaseItem
export class BaseDevice extends BaseItem 

// Here we tell TypeScript that BaseDevice has ConfigMixin mixed in
export interface BaseDevice extends ConfigMixin 

// And finally we apply the ConfigMixin
applyMixins(BaseDevice, [ConfigMixin]);

Link to TypeScript playground

    Trick TypeScript!在这种情况下,生成的代码更类似于您的原始方法,但它有一个缺点:
// The second approach makes use of an abstract class field
export abstract class ConfigMixin 
  public abstract id: string;

  public saveConfig() 
    console.log(this.id);
  


// The base class
class BaseItem 
  constructor(public id: string) 


// An implementation of subclass of BaseItem
export class BaseDevice extends BaseItem 

// Here we tell TypeScript that BaseDevice has ConfigMixin mixed in
export interface BaseDevice extends ConfigMixin 

// NOW THE DRAWBACK
//
// Unfortunately with this approach TypeScript will not complain when
// you are trying to mixin ConfigMixin with a class that does not have id
export class SomeDevice 
export interface SomeDevice extends ConfigMixin 

// And finally we apply the ConfigMixin
applyMixins(BaseDevice, [ConfigMixin]);
applyMixins(SomeDevice, [ConfigMixin]);

Link to TypeScript playground

【讨论】:

以上是关于Struts2 中继承ActionSupport类,都需要哪些jar包啊?的主要内容,如果未能解决你的问题,请参考以下文章

Struts2学习第七课 ActionSupport

struts2 中 Actionsupport 的作用

为啥我不能在 C# 中继承一个类? [复制]

在 Mixin 中继承父类属性

struts2中的Action接口和Actionsupport接口各有啥作用

为啥在 Qt 中继承 QWidget 类时出现内存泄漏