Form表单查询信息返回问题

版权声明:本鼠所有博客均可转载,转载请注明出处,谢谢 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事件。“欧,我的天呐,为啥会有你这么愚蠢的家伙。“”

  问题解决:

  1. 首先需要明白<form:form>标签里action属性的含义,即如果查询(此案中)按钮如果为submit,那么点击是按照action的请求执行的。明白这一步之后就可以进行下一步的debug了。
  2. 对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

面对这个问题主要的坑大概就是文中提到的那几个,若问题没有得到解决可以评论区留言,看到即可回复,小白们一起进步。

猜你喜欢

转载自blog.csdn.net/lee_master/article/details/80309126