HTML前台发送请求代码:
1 <tr> 2 <td>选择收派时间</td> 3 <td> 4 <input type="text" name="takeTimeId" class="easyui-combobox" required="true" 5 data-options="url:'../../taketime_findAll.action', 6 valueField:'id',textField:'name'" /> 7 </td> 8 </tr>
TakeTimeAction代码:
1 @Namespace("/") 2 @ParentPackage("json-default") 3 @Controller 4 @Scope("prototype") 5 public class TakeTimeAction2 extends BaseAction<TakeTime> { 6 @Autowired 7 private TakeTimeService2 takeTimeService; 8 @Action(value="taketime_findAll",results={@Result(name="success",type="json")}) 9 public String findAll(){ 10 //调用业务层,查询所有收派时间 11 List<TakeTime> taketime = takeTimeService.findAll(); 12 //压入值栈返回 13 ActionContext.getContext().getValueStack().push(taketime); 14 return SUCCESS; 15 } 16 }
抽取的Action公共类BaseAction代码:
1 public abstract class BaseAction<T> extends ActionSupport implements 2 ModelDriven<T> { 3 // 模型驱动 4 protected T model; 5 @Override 6 public T getModel() { 7 return model; 8 } 9 // 构造器 完成model实例化 10 public BaseAction() { 11 // 构造子类Action对象 ,获取继承父类型的泛型 12 // AreaAction extends BaseAction<Area> 13 // BaseAction<Area> 14 Type genericSuperclass = this.getClass().getGenericSuperclass(); 15 // 获取类型第一个泛型参数 16 ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass; 17 Class<T> modelClass = (Class<T>) parameterizedType 18 .getActualTypeArguments()[0]; 19 try { 20 model = modelClass.newInstance(); 21 } catch (InstantiationException | IllegalAccessException e) { 22 e.printStackTrace(); 23 System.out.println("模型构造失败..."); 24 } 25 } 26 // 接收分页查询参数 27 protected int page; 28 protected int rows; 29 public void setPage(int page) { 30 this.page = page; 31 } 32 public void setRows(int rows) { 33 this.rows = rows; 34 } 35 // 将分页查询结果数据,压入值栈的方法 36 protected void pushPageDataToValueStack(Page<T> pageData) { 37 Map<String, Object> result = new HashMap<String, Object>(); 38 result.put("total", pageData.getTotalElements()); 39 result.put("rows", pageData.getContent()); 40 ActionContext.getContext().getValueStack().push(result); 41 } 42 }
收派时间接口TakeTimeService代码:
1 public interface TakeTimeService2 { 2 //查询所有收派时间 3 List<TakeTime> findAll(); 4 }
收派接口实现类TakeTimeServiceImpl代码:
1 @Service 2 @Transactional 3 public class TakeTimeServiceImpl2 implements TakeTimeService2 { 4 @Autowired 5 private TakeTimeRepository2 takeTimeRepository; 6 @Override 7 public List<TakeTime> findAll() { 8 return takeTimeRepository.findAll(); 9 } 10 }
dao层TakeTimeRepository代码:
1 public interface TakeTimeRepository2 extends JpaRepository<TakeTime, Integer> {}