【问题标题】:how to pass the multi-select values from JSP to controller without making use of any Model如何在不使用任何模型的情况下将多选值从 JSP 传递到控制器
【发布时间】:2019-03-08 14:04:58
【问题描述】:

任何人都可以向我推荐任何清楚解释如何通过的文章 在不使用任何模型的情况下,从 JSP 到控制器的多选值。

我的要求: 在网页上只有一个多选列表框和提交按钮。 多选列表框包含用“|”分隔的 OrderId 和 CustomerCode

例子:

  • 订单1|客户1
  • 订单2|客户2
  • 订单3|客户3
  • 订单 4|客户 4
  • 订单5|客户5

用户可以选择1个或多个并单击提交按钮。 我需要查询我的订单表,然后生成一个碧玉报告。 所以,我的计划是将 JSP 中的值带入 Controller(以 List 或 OrderIds 的形式) 将其传递给服务,然后使用相应的 jrxml 创建 JASPER。

很高兴您能就此提出一些建议/意见。

【问题讨论】:

    标签: javascript spring spring-mvc jsp multi-select


    【解决方案1】:

    使用以下技术,

    • java 脚本 - 从 jsp 中的多选列表框中获取选定的值
    • ajax - 将选定的值从 jsp 传递给控制器​​

    另外使用 spring 框架来创建 java web 应用程序

    form.jsp 中的多选列表

    <select id='category' multiple='multiple'>
        <option value='Order1|Customer1'>Order1|Customer1</option>
        <option value='Order2|Customer2'>Order2|Customer2</option>
        <option value='Order3|Customer3'>Order3|Customer3</option>
        <option value='Order4|Customer4'>Order4|Customer4</option>
        <option value="Order5|Customer5">Order5|Customer5</option>
    </select>
    

    java 脚本函数,用于从 jsp 中收集选定的多值并将其传递给控制器​​

    function setData(){
    
        var selectedValues= [];
        $('#category:selected').each(function(i, selected) {
            selectedValues[i] = $(category).val();
        }); 
    
        $.ajax({
            type: 'POST',
            dataType: 'json',
            data {'selectedValues':selectedValues.toString()},
            url: '/Project_name/add'
        });
    }
    

    从提交按钮的点击事件中调用上述js函数

    <button onclick="setData()">Submit</button>
    

    上面的js函数调用控制器(MyController)中的insertData()方法,并将选择的值传递给它

    @Controller
    public class MyController {
    
        @RequestMapping(value="/add", method=RequestMethod.POST)
        public void insertData(@RequestParam(value="selectedValues") ArrayList<String> selectedValues){
            //query order table and then generate a jasper report so on
        }
    
    }
    

    【讨论】:

    • 感谢@Rathnayake,需要稍作改动才能使其正常工作。 var selectedValues= []; $('#multiselect :selected').each(function(i, selected) { selectedValues[i] = $(multiselect ).val(); });数据:{'selectedValues':selectedValues}
    • 用您的建议修改了答案。对不起这个错误。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2018-02-03
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-14
    相关资源
    最近更新 更多