想象一个显示学生列表的简单应用程序。
我想在这里弄清楚这个概念。我的例子中的代码有希望解释一下。
你有一个控制器findStudents()
您有一个显示学生列表的网页。在网页的顶部是过滤器选项列表。使用选择选项(例如国家/地区,注册日期,状态,课程等)和提交按钮来考虑表单。网页将http ajax请求发送到控制器,并将filterOptions参数作为数组传递。然后,控制器应该将过滤后的学生列表作为json数组返回。
到目前为止,这是我的想法。在这个例子中,我想过滤登记的日期(可能还有其他人,但为了简单起见,我选择了一个 - 并非所有的过滤器选项都可以一次选择)。
我的代码示例是否在正确的路径上?我感觉到代码味道。
有些事我不确定。
控制器
@RequestMapping(value = "/find-students", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> PostFormDataByMap(@RequestBody Map<String, Object> filterOptions) {
List<BeatRate> students = studentsJpaRepository.findAllWithFilters(filterOptions);
return obj;
}
接口
@Repository
public interface StudentsJpaRepository {
public List<Student> findAll();
public List<Student> findAllWithFilters();
}
dao - studentsJpaRepositoryImpl
public List<Student> findWithFilter(HashMap filterOptions<String, String>) {
String sql =
"SELECT " +
"id",
"first-name, " +
"address, " +
"course," +
"age," +
"date_enroled"
"FROM " +
"BeatRate ";
if(filterOptions.get("date_enroled")){
sql = sql+" WHERE date_enroled = "+filterOptions.get("date_enroled");
}
Query query = entityManager.createNativeQuery(sql, Student.class).setMaxResults(10);
return query.getResultList();
}