道:
public Vocabulary getItem(int categoryvocabularyid) {
String sql = "SELECT * FROM vocabulary WHERE categoryvocabularyid = ?";
return jdbcTemplate.queryForObject(sql,new Object []{categoryvocabularyid}, new BeanPropertyRowMapper<Vocabulary>(Vocabulary.class));
}
控制器:
@RequestMapping("/public/vocabulary/{id}")
public String readedit(@PathVariable("id") int categoryvocabularyid, ModelMap modelMap){
modelMap.addAttribute("vocal", vocaburalysDao.getItem(categoryvocabularyid));
return "public.index.vocabulary.detail";
}
我的观点:
<c:forEach items="${cateVocal }" var="cateVocal">
<div class="box-item">
<a href="/exam/56">
<!-- <div class="img"
style="background: url(/upload/2016/05/9106.jpg); background-size: cover;">
<p>0/54</p>
</div> -->
<!-- <div class="meter">
<span style="width: 0%"></span>
</div> -->
<h4>Chủ Đề: ${cateVocal.categoryVocaburalyName }</h4>
</a><a class="learn" href="${pageContext.request.contextPath}/public/vocabulary/${cateVocal.id }">Học ngay</a>
</div>
</c:forEach>
我收到了一个错误,我不知道是什么原因引起的, 细节错误
Etat HTTP 500 - Request processing failed; nested exception is org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected 1, actual 2
请告诉我。
非常感谢大家
答案 0 :(得分:0)
您从您的数据库中询问单个项目Vocabulary
,但实际上它找到的不止一个,因此您会收到例外。
我看到你在categoryvocabularyid
找到了行,所以这里有解决方案:
categoryvocabularyid
在Vocabulary
中是唯一的(我猜这不太可能),那么您必须将唯一索引放入数据库中的字段,然后删除重复的项目List<Vocabulary>
并使用queryForList
代替