1. 程式人生 > >Springmvc前端傳值到後臺 對應實體類接收

Springmvc前端傳值到後臺 對應實體類接收

繫結陣列

每個商品前有一個checkbok,選中多個商品後點擊刪除按鈕把商品id傳遞給Controller。

jsp頁面
<c:forEach items="${itemList }"var="item">
 <tr>
     <td><inputtype="checkbox"name="ids"value="${item.id}"/></td>
     <td>${item.name }</td>
     <td>${item.price }</td>
     <td>${item.detail }</td
>

 </tr>
</c:forEach>
Controller

Controller方法中可以用String[]接收,或者pojo的String[]屬性接收。兩種方式任選其一即可。

@RequestMapping("queryItem")
public String queryItem(QueryVo queryVo, Integer[] ids) {
 System.out.println(queryVo.getIds().length);
 System.out.println(ids.length);
 return"success";
}
pojo
publicclassQueryVo
{
   privateItem item;
   privateInteger[] ids;
set/get...
}

繫結到List

將表單的資料繫結到List,List中存放物件,並將定義的List放在包裝類QueryVo中。

pojo
publicclassQueryVo{
   privateItem item;
   privateInteger[] ids;
   privateList<Items> itemsList;
set/get...
}
jsp頁面
<c:forEachitems="${itemList }"var="item"varStatus="s">
<tr>
 <td>
<inputtype="checkbox"name="ids"value="${item.id}"/></td>
 <td>
   <inputtype="hidden"name="itemList[${s.index}].id"value="${item.id }"/>
   <inputtype="text"name="itemList[${s.index}].name"value="${item.name }"/>
 </td>
 <td><inputtype="text"name="itemList[${s.index}].price"value="${item.price }"/></td>
 <td><inputtype="text"name="itemList[${s.index}].detail"value="${item.detail }"/></td>
</tr>
</c:forEach>

日期型別處理

springmvc 在接收日期型別引數時,如不做特殊處理 會出現400語法格式錯誤。下來就是處理方式。

controller
/**
 * 接收日期型別引數
 *
 */

 @RequestMapping("/test")
 publicStringtest(Datebirthday){
     System.out.println(birthday);
     return"index";
 }
自定義型別轉換規則

SpringMVC提供了Converter介面,它支援從一個Object轉換為另一個Object。

/**
* 全域性日期處理類
* Convert<T,S>
* 泛型T:代表客戶端提交的引數 String
* 泛型S:通過convert轉換的型別
 
*/

publicclassDateConvertimplementsConverter<String,Date> {

   @Override
   publicDateconvert(StringstringDate) {
       SimpleDateFormat simpleDateFormat =newSimpleDateFormat("yyyy-MM-dd");
       try{
           returnsimpleDateFormat.parse(stringDate);
       }catch(ParseException e) {
           e.printStackTrace();
       }
       returnnull;
   }
}
註冊自定義的型別轉換類
<!-- 第三步:註冊處理器對映器/處理器介面卡 ,新增conversion-service屬性-->
   <mvc:annotation-drivenconversion-service="conversionService"/> 
   <!-- 第二步: 建立convertion-Service ,並注入dateConvert-->
   <beanid="conversionService"class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
       <propertyname="converters">
           <set>
               <refbean="dateConvert"/>
           </set>
       </property>
   </bean>
   <!-- 第一步:  建立自定義日期轉換規則 --> 
   <beanid="dateConvert"class="zpark.convert.DateConvert"/>