有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在SpringMVC中将列表从控制器传递到jsp并在javascript中迭代

我有一张单子

  List<Integer> ids = new ArrayList<Integer>();

它包含许多ID。我必须在jsp中检查用户选择的id是否存在于列表中,错误消息显示在页面上

我在jsp中添加了一个隐藏的

        <form:hidden path="idList" id="idList"/>

在javascript中,我通过

    var idArray = new Array();
    idArray = $("#idList").val();

idArray具有所有带逗号和空格的ID。现在这是不对的。我知道我做这件事的方式不对。有人能帮忙吗? 我需要在列表中找到的id是美元(“#idUser”)。val()),这是我在javascript中得到的

请帮忙


共 (1) 个答案

  1. # 1 楼答案

    如果我正确理解了你的问题,那么你想做什么

    假设您的jsp表单如下所示:

    <c:url value="/formaction" var="postUrl"/>
        <form:form id="myForm" method="post" action="${postUrl}" modelAttribute="formBean"> 
            <form:hidden path="ids"/>
    
            <label>Name:</label>
            <form:input path="name"/><br/>
    
            <label>Select Id:</label>
            <form:input path="id"/>
            <%  <form:select path="id">
                <form:option value="0"> select id </form:option>
                <form:options items="${formBean.ids}"/>
            </form:select>  %>
    
            <label id="idErr" style="color: red; display: none;">Please select another, id exists</label>
            <input type="submit"/>
        </form:form>
    

    并形成如下模型:

    public class FormBean {
    
        private Long id;
        private String name;
        private List<Integer> ids;
    
        //getters and setters
    }
    

    以控制器形式向模型添加bean,如下所示:

    @RequestMapping(method=RequestMethod.GET)
    public String showForm(Model model){
    
        FormBean formBean = new FormBean();
        formBean.setIds(new ArrayList<Integer>(Arrays.asList(1,2,3,4,5)));
        model.addAttribute("formBean", formBean);               
        return "form";
    }
    

    然后可以在jquery中验证ids,如下所示:

    $("form#myForm").on('submit', function() {
       var ids = $('#ids').val(); //get values of <form:hidden path="ids"/> ,values will look like: 1,2,3,4,5
       var idsArray = ids.split(","); //split by comma
       var result = jQuery.inArray($('#id').val(), idsArray);//check user entered id exists in ids array
        if(result==-1){ 
            $('#idErr').hide();
            return true; //id not exists, submit form
        }
        else {
            //id exists, show error message
            $('#idErr').show();
            return false;
        }
    });
    

    但是,最好使用<form:select