如何在不使用任何模型的情况下将多选值从JSP传递到控制器

问题描述 投票:1回答:1

任何人都可以向我推荐任何明确解释如何在不使用任何模型的情况下将多选值从JSP传递给控制器​​的文章。

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

例:

  • Order1 | customer1表
  • Order2 |顾客2
  • Order3 | Customer3
  • Order4 | Customer4
  • Order5 | Customer5

用户可以选择1个或更多,然后单击“提交”按钮。我需要查询我的订单表,然后生成一个jasper报告。因此,我的计划是将JSP中的值转换为Controller(以List或OrderIds的形式)将其传递给Service,然后使用相应的jrxml创建JASPER。

很高兴就此提出一些建议/建议。

javascript spring spring-mvc jsp multi-select
1个回答
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'
    });
}

从提交按钮的click事件调用上面的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
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.