如何在不使用任何模型的情况下将 JSP 中的多 select 值传递给控制器

how to pass the multi-select values from JSP to controller without making use of any Model

任何人都可以向我推荐任何清楚说明如何通过 从 JSP 到控制器的多个 select 值不使用任何模型。

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

示例:

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

如果能从你这里得到一些 suggestion/advice 就太好了。

使用以下技术,

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

另外使用 spring 框架创建 java 网络应用程序

多select列表在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 收集 selected 多个值并将其传递给控制器​​

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() 方法并将 selected 值传递给它

@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
    }

}