无法访问操作Struts2中的bean

无法访问操作Struts2中的bean,struts2,Struts2,我有index.jsp,其中有一个链接,单击该链接,页面特定操作将被调用。现在,单击该链接时,我需要显示一个页面,其中包含已填充的多选列表以及少量输入文本字段,在操作的构造函数中,我填充了TransactionBean,它将与下一页的字段绑定,即transactionData.jsp transactionData.jsp页面使用填充的multiselected列表正确显示。现在用户可以从multiselected列表中选择值,并可以在文本字段中输入日期,然后单击单击按钮,以便显示条形图 在单击

我有index.jsp,其中有一个链接,单击该链接,页面特定操作将被调用。现在,单击该链接时,我需要显示一个页面,其中包含已填充的多选列表以及少量输入文本字段,在操作的构造函数中,我填充了TransactionBean,它将与下一页的字段绑定,即transactionData.jsp

transactionData.jsp页面使用填充的multiselected列表正确显示。现在用户可以从multiselected列表中选择值,并可以在文本字段中输入日期,然后单击单击按钮,以便显示条形图

在单击按钮时,我正在调用另一个操作,该操作的属性也是TransactionBean。在该操作的execute方法中,我试图使用其getter访问TransactionBean,但它给了我NullPointerException。我知道,如果我们提交一个绑定了bean字段的页面,那么在调用action时,bean将通过拦截器自动实例化,但这里似乎有点不正确

index.jsp

你好,世界 你好,世界 DisplayAction.java

包com.tutorialspoint.struts2; 导入java.util.ArrayList; 导入java.util.List; 导入com.opensymphony.xwork2.ActionSupport; 公共类DisplayAction扩展了ActionSupport{ TransactionBean TransactionBean; 公共事务bean getTransactionBean{ 返回事务bean; } public void setTransactionBeanTransactionBean transactionBean{ this.transactionBean=transactionBean; } 公共字符串执行{ 回归成功; } 公开行动{ System.out.PrintLn内部构造函数; List leftChannelsList=新建ArrayList; leftChannelsList.addChannel1; leftChannelsList.addChannel2; //TransactionBean TransactionBean=新TransactionBean; SetTransactionBean新建TransactionBean; getTransactionBean.setLeftChannelsListleftChannelsList; //事务类型Dta List leftTransTypesList=新建ArrayList; leftTransTypesList.addTransType1; leftTransTypesList.addTransType2; getTransactionBean.setLeftTransTypesListleftTransTypesList; } } transactionData.jsp

你好,世界 JfreeChartAction.java

公共类JfreeChartAction扩展了ActionSupport{ 私人海图; 私有TransactionBean TransactionBean; 私有事务dao事务dao; 公共事务DAO getTransactionDao{ 返回事务dao; } 公共无效setTransactionDaoTransactionDao transactionDao{ this.transactionDao=transactionDao; } 公共事务bean getTransactionBean{ 返回事务bean; } public void setTransactionBeanTransactionBean transactionBean{ this.transactionBean=transactionBean; } //如果指定图表,将调用此方法 公共JFreeChart getChart{ 收益表; } 公共无效setChartJFreeChart图表{ this.chart=图表; } 公共行动{} 公共字符串执行引发异常{ System.out.printlinner执行:启动; System.out.printlnFrom-date:+getTransactionBean.getFromDate; System.out.printlnFrom date:+getTransactionBean.getToDate; System.out.printlenLeftChannelsList:+getTransactionBean.getLeftChannelsList; System.out.printlnLeft Trans-type List+getTransactionBean.getLeftTransTypesList; DefaultCategoryDataset数据集=新的DefaultCategoryDataset; dataSet.setValue0,2014年4月1日,渠道1; dataSet.setValue15000,2014年4月1日,渠道2; dataSet.setValue9000,2014年5月1日,渠道1; dataSet.setValue1500,2014年5月1日,渠道2; dataSet.setValue10000,2014年6月1日,渠道1; dataSet.setValue8000,2014年6月1日,渠道2; chart=ChartFactory.createBarChart 演示条形图,//图表标题 移动制造商,//域轴标签 事务,//范围轴标签 dataSet,//图表数据 PlotOrientation.VERTICAL,//方向 正确,//是否包含图例? true,//是否包含工具提示? false//是否包含URL? ; chart.setBorderVisibletrue; System.out.PrintLnInner执行:结束; 回归成功; } } Struts.xml

TransactionData.jsp 图表 jpeg 600 400 TransactionBean.java

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.jfree.chart.JFreeChart;

public class TransactionBean {

    private Date dateTime;
    private Integer volume;
    private String leftChannels;
    private String rightChannels;
    private String toDate;
    private String fromDate;
    private List<String> leftChannelsList;
    private List<String> rightChannelsList;

    //Transaction type data 
    private String leftTransTypes;
    private List<String> leftTransTypesList;
    private String rightTransTypes;
    private List<String> rightTransTypesList;



    public Date getDateTime() {
        return dateTime;
    }

    public void setDateTime(Date dateTime) {
        this.dateTime = dateTime;
    }

    public Integer getVolume() {
        return volume;
    }

    public void setVolume(Integer volume) {
        this.volume = volume;
    }

        public TransactionBean(){
        //System.out.println("Inside TransactionBean constructor");
        }

    public String getLeftTransTypes() {
        return leftTransTypes;
    }

    public void setLeftTransTypes(String leftTransTypes) {
        this.leftTransTypes = leftTransTypes;
    }

    public List<String> getLeftTransTypesList() {
        return leftTransTypesList;
    }

    public void setLeftTransTypesList(List<String> leftTransTypesList) {
        this.leftTransTypesList = leftTransTypesList;
    }

    public String getRightTransTypes() {
        return rightTransTypes;
    }

    public void setRightTransTypes(String rightTransTypes) {
        this.rightTransTypes = rightTransTypes;
    }

    public List<String> getRightTransTypesList() {
        return rightTransTypesList;
    }

    public void setRightTransTypesList(List<String> rightTransTypesList) {
        this.rightTransTypesList = rightTransTypesList;
    }


    public String getToDate() {
        return toDate;
    }

    public void setToDate(String toDate) {
        this.toDate = toDate;
    }

    public String getFromDate() {
        return fromDate;
    }

    public void setFromDate(String fromDate) {
        this.fromDate = fromDate;
    }

    public String getLeftChannels() {
        return leftChannels;
    }

    public void setLeftChannels(String leftChannels) {
        this.leftChannels = leftChannels;
    }

    public String getRightChannels() {
        return rightChannels;
    }

    public void setRightChannels(String rightChannels) {
        this.rightChannels = rightChannels;
    }

    public List<String> getRightChannelsList() {
        return rightChannelsList;
    }

    public void setRightChannelsList(List<String> rightChannelsList) {

        this.rightChannelsList = rightChannelsList;
    }

    public List<String> getLeftChannelsList() {
        return leftChannelsList;
    }

    public void setLeftChannelsList(List<String> leftChannelsList) {

        this.leftChannelsList = leftChannelsList;
    }

}
你能告诉我应该使用哪个版本吗

始终使用。目前是Struts 2.3.16.3 GA。您还可以查看和。

发布
你的豆子代码。你好,罗曼,谢谢你的回复。我在上面的代码中添加了TransactionBean。您使用的是什么版本的Struts?Struts2-core-2.0.8.jar,Struts2-jFreechart-pligin-2.0.11.1.jar,Struts2-spring-plugin-2.0.11.1.jar,xwork-2.0.4.jar这个版本太旧了,不允许做您想做的事情。