带有动态列表名称的<s:select>

 无正道 发布于 2023-02-10 22:00

我想迭代一个包含列表源名称的字符串列表,但HTML输出不是预期的:它是显示的列表的名称,而不是内容.

我的Action代码:

public class DescriptionTabArchiveAction extends ActionSupport {
    private List vegetables = new ArrayList();
    private List devices = new ArrayList();

    // contain "vegetables" and "devices".
    private List selectList = new ArrayList();

    @Action("multipleSelect")
    public String multipleSelect() {
                vegetables.add("tomato");
                vegetables.add("potato");

                devices.add("mouse");
                devices.add("keyboard");

                selectList.add("vegetables");
                selectList.add("devices");

        return SUCCES;
    }

       // getters and setters
}

JSP:



    

    
    <%--  --%>

我得到了什么(html输出):



我期待什么(html输出):



我的问题:

如何动态迭代字符串列表以使多个具有不同的列表源?

1 个回答
  • 用a Map代替List

    private Map<String, List<String>> selectMap = new HashMap<>();
    //getter and setter here
    
    @Action("multipleSelect")
    public String multipleSelect() {
        vegetables.add("tomato");
        vegetables.add("potato");
    
        devices.add("mouse");
        devices.add("keyboard");
    
        selectMap.put("vegetables", vegetables);
        selectMap.put("devices", devices);
    
        return SUCCESS;
    }
    

    修改迭代器以使用地图

    <s:iterator value="selectMap">    
        <s:select list="%{value}" />
        ...
    </s:iterator>
    

    2023-02-10 22:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有