Struts2學習:Action使用@Autowired注入爲null的解決方案

一、pom.xml引入struts2-spring-pluginjava

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>2.5.18</version>
</dependency>

二、struts.xml添加常量struts.objectFactory.spring.autoWire.alwaysRespect,使Spring的自動注入老是有效spring

<constant name="struts.objectFactory.spring.autoWire.alwaysRespect" value="true" />

經過上述兩個配置,便可在Action中實現自動注入。測試例子:apache

在application.properties配置:app

destPath = application.properties

新建util文件夾,新建工具類StrutsConfigjsp

import java.util.Properties;
@Component
public class StrutsConfig {
    @Value("${destPath}")
    private String destPath;

    public String getDestPath() {
        System.out.println(destPath);
        return destPath;
    }
}

新建action類UploadFileAction工具

import com.struts2demo.demo.util.StrutsConfig;
import org.springframework.beans.factory.annotation.Autowired;
import java.io.File;

public class UploadFileAction {
    @Autowired
    private  StrutsConfig strutsConfig;

    public String excute() {
        System.out.println(strutsConfig.getDestPath());
        return "error";
    }
}

struts.xml和jsp的編寫就不寫了,測試效果: 測試

相關文章
相關標籤/搜索