spring MVC过滤结果与html选项

时间:2015-01-31 19:41:17

标签: java spring hibernate spring-mvc

想象一个显示学生列表的简单应用程序。

我想在这里弄清楚这个概念。我的例子中的代码有希望解释一下。

你有一个控制器findStudents()

您有一个显示学生列表的网页。在网页的顶部是过滤器选项列表。使用选择选项(例如国家/地区,注册日期,状态,课程等)和提交按钮来考虑表单。网页将http ajax请求发送到控制器,并将filterOptions参数作为数组传递。然后,控制器应该将过滤后的学生列表作为json数组返回。

到目前为止,这是我的想法。在这个例子中,我想过滤登记的日期(可能还有其他人,但为了简单起见,我选择了一个 - 并非所有的过滤器选项都可以一次选择)。

我的代码示例是否在正确的路径上?我感觉到代码味道。

有些事我不确定。

  • filterOptions会存储为实体吗?例如ArrayList of 国家/地区过滤结果...例如告诉我在英国的学生, 爱尔兰,法国等......
  • 我需要使用服务吗?
  • StudentsJpaRepository应该如何显示?

控制器

@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();
}

0 个答案:

没有答案