我實體類的id是LONG型,當復選框選則多個的時候,就報錯,刪一個是沒有問題的。
action類
public class ResumeAction extends BaseModelAction{
.......
public String delete(){
resumeService.deleteById(model.getId());
return "toList";
}
}
action的繼承類,就是通過反射來實例化model,這樣就導致model和實體一樣了
public class BaseModelAction extends BaseAction implements ModelDriven {
protected T model;
public BaseModelAction() {
System.out.println("----------> BaseAction.BaseAction()");
try {
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
Class clazz = (Class) pt.getActualTypeArguments()[0];
model = clazz.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Override
public T getModel() {
return model;
}
}
從jsp表單提交的時候,只選擇一條數據,提交的id是對的,但是選擇多個的話就報錯了,我猜測選擇多個的時候id會經過處理,會用“,”來拼接,這樣就導致在給model的id賦值的時候就報錯了,因拼接“,”後變成字符串,但是model的id是long型,類型不匹配就報錯了,但是真正的原因也不是很清楚,還請大神指點一二,順便說下解決方法。萬分感謝!!!!!
在實體中新建一個屬性
String idList
當批量提交前首先觸發的操作是將所有的id以逗號的形式分割 ,
後台拿到idList做分割處理,
並逐個賦值給id,
然後你拿到的是一組Long[]
每個都是刪除的id
剩下的你應該都會了