版权声明:本鼠所有博客均可转载,转载请注明出处,谢谢 https://blog.csdn.net/lee_master/article/details/80309126
本人系小白一枚,前不久刚刚接触Spring MVC,然后问题重重。对于下面的问题,大佬勿喷,仅供和自己一样初入SM的小白参考。因为某些原因文中部分ID做了处理。
由于客户需求,需要做检索功能,大体样式如下图:
代码实现如下:
<form:form id="xxxx" modelAttribute="XXXXXXXX" action="${ctx}/URL" method="post" class="breadcrumb form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<ul class="ul-form">
<li><label>属性名称 </label>
<form:select id="dddd" path="dddddd" class="input-xlarge required" itemValue="">
<form:option value="" id="" label="--请选择--"></form:option>
<form:options items="${d}" itemValue="fdsfsdfds" itemLabel="fsffdfdsfs" ></form:options>
</form:select>
</li>
<li><label>媒介类型 </label>
<form:select id="ccc" path="cccccc" class="input-xlarge required" itemValue="">
<form:option value="" id="" label="--请选择--"></form:option>
<form:options items="${cccccccccc}" itemValue="vvvvvvv" itemLabel="vvvvvvvvvvvvvv" ></form:options>
</form:select>
</li>
<li class="btns"><input id="btnQuery" class="btn btn-primary" type="button" value="查询" onclick="cd()"/></li>
<li class="clearfix"></li>
</ul>
</form:form>
问题就出现在查询按键上,因为对于语言的不了解,本拨鼠在button上加了onclick事件,然后采用ajax进行数据的提交以及查询,然后就导致了信息无法返回表单显示。在这里之前还踩过一个坑就是button类型我设置了submit,但是我又加了onclick事件。“欧,我的天呐,为啥会有你这么愚蠢的家伙。“”
问题解决:
- 首先需要明白<form:form>标签里action属性的含义,即如果查询(此案中)按钮如果为submit,那么点击是按照action的请求执行的。明白这一步之后就可以进行下一步的debug了。
- 对button进行修改,如下
<li class="btns"><input id="btnQuery" class="btn btn-primary" type="submit" value="查询"/></li>
主要修改地方就是讲type改为submit,删掉onclick事件
3.接下来是controller层以及service层的事情了(在你dao层以及xml文件里数据库查询语句已经解决的情况下)
在foreach中items是需要返回一个page数据的,所以在返回信息时查看一下自己这个地方是接收什么类型的数据,然后对controller层以及service层进行编写,否则会给自己留一个大坑
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>属性名称</th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="dddd">
<tr>
<td>
${dddd.baseName}
</td>
</tr>
</c:forEach>
</tbody>
</table>
下面是controller层对应的代码(XXXservice是创建的全局变量)
@RequestMapping(value="URL")
public String advanceSearch(String cc,String ccc,Model model,DDDDDD dddddd, HttpServletRequest request, HttpServletResponse response){
Page<MediaTypeAttribute> page =dddService.advanceSearch(cc,ccc,new Page<DDDDDD>(request, response), dddddd);
model.addAttribute("page",page);
return "页面URL";
}
记住此处往页面中添加的一定是page。注解不要加@ResponseBody
面对这个问题主要的坑大概就是文中提到的那几个,若问题没有得到解决可以评论区留言,看到即可回复,小白们一起进步。