想将java struts 2静态代码转换为动态代码

时间:2015-01-03 03:24:25

标签: java jsp struts2

我已经分配给一个struts2项目,其中一个jsp包含100多个单选按钮,并且它们静态地处理不动态。由于jsp包含100个单选按钮,所以我能够看到下面的单选按钮列表捕获了他们的getter和setter的动作

  • 列出selectRadioList001
  • 列出selectRadioList002
  • 列出selectRadioList003
  • 列出selectRadioList004
  • 列出selectRadioList100

我想在列表中添加这些单选按钮,动态地迭代1到100之类的东西,但是当我尝试访问像"searchBoxSelectRadioList"+i之类的变量时,它就像一个简单的字符串一样假装。我希望它像上面显示的List一样。

public class SelectRadioListPOJO {
    private List<TicketDesignUtil> selectRadioList;

    public List<TicketDesignUtil> getSelectRadioList() {
        return selectRadioList;
    }

    public void setSelectRadioList(List<TicketDesignUtil> selectRadioList) {
        this.selectRadioList = selectRadioList;
    } 
}

行动代码:

List<SelectRadioListPOJO> selectRadioListPOJOList = new ArrayList<>();
SelectRadioListPOJO selectRadioListPOJO;

for (int i = 1; i <= 100; i++) {
    selectRadioListPOJO = new  SelectRadioListPOJO();
    selectRadioListPOJO.setSelectRadioList("searchBoxSelectRadioList"+i);//   ERROR
    selectRadioListPOJOList.add(selectRadioListPOJO);
}

1 个答案:

答案 0 :(得分:0)

不清楚你在问什么。

您无法将任意值传递给方法; setSelectRadioList列出了TicketDesignUtil

如果您的操作没有所有这些单选按钮的getter和setter,那么您应该直接访问请求参数,例如,通过ParameterAware

然后,您将从注入的参数图中按名称访问单选按钮参数。

注意:

  • 不是&#34;假装&#34;要成为一个简单的字符串,它一个简单的字符串,因为......好吧,因为它是。
  • 您的for循环错误;我在你的问题中纠正了它,以避免其他人评论它。应将POJO添加到循环内的POJOList中。
  • 命名很时髦;只需将其称为selectRadioListPojos即可。更好的是,将其命名为特定于域的:变量应该在语义上有意义,而不仅仅是对所涉及的类的描述。
  • 这些不应该是静态的,而是地图或数组。