freemarker引擎,Select下拉框绑定后台值回显
ftl页面如下
<div class="input-group m-b-10">
<span class="input-group-addon">阅览室列数</span>
<input type="text" class="form-control required" id="lie" name="lie" value="${read.lie}" placeholder="请输入阅览室列数" tips="请填写阅览室列数"/>
</div>
<div class="input-group m-b-10">
<span class="input-group-addon">类型</span>
<select name="readingType.id" class="form-control" id="readingType">
<#list readType as type>
<option value="${type.id}" <#if read.readingType.id==type.id >selected</#if>>${type.name}</option>
</#list>
</select>
</div>
后台Controoler层为
/***
* 跳转到编辑页面
* @return
*/
@RequestMapping(value = "/edit")
public String update(@RequestParam(name="id",required=true)Long id, Model model){
ReadingRoom byId = readRoomService.findById(id);
model.addAttribute("read",byId);
model.addAttribute("readType",readRoomTypeService.findAll());
return "/admin/readroom/edit";
}
Service层为
/***
* 根据ID删除阅读室
* @param id
*/
public void deleteId(Long id){
readRoomDao.deleteById(id);
}
/**
* 阅读类型全查询
* @return
*/
public List<ReadingType> findAll(){
return readRoomTypeDao.findAll();
}
DAO层为
/***
* 阅览室操作Dao
*/
@Repository
public interface ReadRoomDao extends JpaRepository<ReadingRoom,Long> {
/***
* 根据ID查询阅览室
* @param id
* @return
*/
@Query(value = "select * from ylrc_reading where id= :id",nativeQuery = true)
ReadingRoom find(@Param("id") Long id);
}
拿Controoler根据ID查询到的一条记录的外键的ID跟循环遍历的副表中的ID做比较,如果等于那就设置Selected,有多种方法这种我觉得方便理解。