Form表單查詢信息返回問題

       本人系小白一枚,前不久剛剛接觸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

面對這個問題主要的坑大概就是文中提到的那幾個,若問題沒有得到解決可以評論區留言,看到即可回覆,小白們一起進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章