【问题标题】:Want to convert java struts 2 static code into dynamic想把java struts 2静态代码转成动态
【发布时间】:2015-01-03 03:24:24
【问题描述】:

我被分配到一个 struts2 项目,它的一个 jsp 包含 100 多个单选按钮,它们是静态处理的,而不是动态处理的。由于 jsp 包含 100 个单选按钮,因此我可以看到下面的单选按钮列表使用它们的 getter 和 setter 进行操作

  • 列表选择RadioList001
  • 列表选择RadioList002
  • 列表选择RadioList003
  • 列表选择RadioList004
  • 列表选择RadioList100

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

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);
}

【问题讨论】:

    标签: java jsp struts2


    【解决方案1】:

    不清楚你在问什么。

    您不能将任意值传递给方法; setSelectRadioList 获取TicketDesignUtil 的列表。

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

    然后,您可以从注入的参数映射中按名称访问单选按钮参数。

    注意事项:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-04
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多