天天看點

關于select2遠端加載

前台頁面:

<div class="col-lg-9" id="cndiv" style="display:none;"> <input type="text" id="companyName" name="companyName" maxlength="32" style="width:280px;float:left;" class="form-control"> <span style="color:red;font-size:14px;float: right;margin-top:5px;"></span> </div>

js:

<script type="text/javascript"> $(document).ready(function () { $('#companyId').select2({ ajax: { url: "${dynamicDomain}/home/register/company", dataType: 'json', delay: 250, data: function (params) { return { companyName: params.term, // search term page: params.page }; }, processResults: function (data, params) { params.page = params.page || 1; return { results: data.companies, pagination: { more: (params.page * 30) < data.total_count } }; }, cache: true }, escapeMarkup: function (markup) { return markup; }, // let our custom formatter work minimumInputLength: 2 }); </script>

背景處理:

/**
     * 連結到注冊頁面
     */
    @RequestMapping("/company")
    public String company(HttpServletRequest request, ModelMap modelMap, String companyName) {
        if (StringUtils.isNotBlank(companyName) && companyName.length() >= ) {
            List<Company> companies = companyManager.searchCompany(LocaleUtils.getLocale(request).getLanguage(), "%" + companyName + "%");
            I18NUtils.transform(companies, request);
            List<Option> options = new ArrayList<Option>();
            for(Company company : companies){
                Option option = new Option();
                option.setId(company.getObjectId().toString());
                option.setText(company.getNameZh());
                options.add(option);
            }
            modelMap.addAttribute("companies", options);
            return "jsonView";
        }
        modelMap.addAttribute("companies", new ArrayList<Option>());
        return "jsonView";
    }
           

繼續閱讀