在springmvc的前端jsp頁面中,使用select有兩種寫法
從后端控制器,獲取session的值對象后,再注入到前端的jsp頁面中,如下
第一種,這種把options已經集成進去了。
<form:select path="zhouyiIndex.id" class="form-control" id="zhouyiIndex" items="${zhouyiIndex }" itemValue="id" itemLabel="info"></form:select>
第二種,這種分別寫select 和options,這種會自動選中,若session中有值。
<form:select path="zhouyiIndex.id" class="form-control" id="zhouyiIndex" > <form:options items="${zhouyiIndex }" itemValue="id" itemLabel="info"></form:options> </form:select>
第二種的情況,后端代碼為:
@RequestMapping("zhouyiYaoModify/{id}") public String zhouyiYaoModify(@PathVariable("id") Integer id,Map<String,Object> map) { map.put("zhouyiYao", zhouyiYaoService.getZhouyiYaoById(id)); map.put("zhouyiIndex", zhouyiIndexService.getZhouyiIndexs()); return "zhouyiYaoModify"; }
第二種方法,可以自動選中。
也可以再在options 上加入,option(沒有s)選項,然后單獨寫一行。不推薦。
在springmvc的控制器中,如出現錯誤提示,在前台頁面,顯示時,必須使用springmvc的標簽,如<form:input path="">,用普通原始的標簽,出錯誤后,回顯時,不帶值。
另外在攜帶級聯屬性時,需要填寫不帶本bean的級聯路徑。
在錯誤回顯時,返回字符串不帶redirect和forward,修飾符。
舉例子說明:
@RequestMapping("/zhouyiYaoUpdate") public ModelAndView zhouyiUpdate(@Valid ZhouyiYao zhouyiYao, BindingResult errors, @RequestParam(value = "picFile") MultipartFile multipartFile, @RequestParam("picName") String picName, HttpServletRequest request) { ModelAndView mv = new ModelAndView(); if(!picName.isEmpty()) { if(multipartFile.getOriginalFilename().toString().isEmpty()) { errors.addError(new FieldError("zhouyiYao", "yaoPic", "*若填寫名字,必須選擇文件")); } } if(!multipartFile.getOriginalFilename().toString().isEmpty()) { if(picName.isEmpty()) { errors.addError(new FieldError("zhouyiYao", "yaoPic", "*若選擇文件,必須填寫名字")); } } if(errors.getFieldErrorCount()>0){ // for (FieldError err : errors.getFieldErrors()) { // System.out.println("err field:= " +err.getField() + " err message: == " +err.getDefaultMessage()); // } mv.setViewName("zhouyiYaoModify"); mv.addObject("zhouyiIndex", zhouyiIndexService.getZhouyiIndexs()); return mv; } zhouyiYaoService.modifyZhouyiYao(zhouyiYao); mv.setViewName("redirect:/getYaos"); return mv; }
前台頁面如下:
<form:form modelAttribute="zhouyiYao" class="form-horizontal" id="saveForm" > <div class="form-group"> <label for="zhouyiIndex.info" class="col-sm-2 control-label">原主卦</label> <div class="col-sm-2"> <form:input type="text" path="zhouyiIndex.info" id="zhouyiIndex.info" class="form-control" readonly="true" /> <form:hidden path="id" value="${zhouyiYao.id }"/> </div>
<div class="form-group"> <label for="zhouyiIndex" class="col-sm-2 control-label">主卦</label> <div class="col-sm-6"> <form:select path="zhouyiIndex.id" class="form-control" id="zhouyiIndex" > <form:options items="${zhouyiIndex }" itemValue="id" itemLabel="info"></form:options> </form:select> </div> </div>