как получить доступ к данным для DAO для Contoller для пользовательского интерфейса в угловых JS NG-сетки - PullRequest
0 голосов
/ 21 сентября 2018

Код DAO

  public List<UserBean> list() throws SQLException {
        Connection con = null;
        ResultSet rs = null;
        List<UserBean> retbean = new ArrayList<UserBean>();
        try {
            con = dataSource.getConnection();
            PreparedStatement statement = con.prepareStatement("select username from customer");
            rs = statement.executeQuery();
            while (rs.next()) {
                rb.setUsername(rs.getString("username"));
                retbean.add(rb);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return retbean;
    }

}

Код контроллера

@RequestMapping(value = "doLogin")
public ModelAndView doLogin(@ModelAttribute @Valid UserBean
                                    userBean, BindingResult result) {
    ModelAndView view = new ModelAndView("login");
    if (!result.hasFieldErrors()) {
        if (!combatService.authenticateUser(userBean)) {
            result.addError(new ObjectError("err", "Invalid Credentials"));
        } else {
            if (retrieveService.list(userBean) != null) {
                view.setViewName("welcomes");
            }
        }
    }
    return view;
}

На самом деле, если я войду, он перейдет на страницу приветствия, чтобы получитьданные из базы данных для отображения на странице приветствия в угловых js

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Добро пожаловать в Stackoverflow.Сначала вы должны получить доступ к своему DAO через контроллер.Поэтому вы должны написать новый метод внутри контроллера, который будет взаимодействовать с DAO и передавать данные в код на стороне клиента (для вас, angular), например, через JSON.

0 голосов
/ 21 сентября 2018

В зависимости от используемой версии Spring вы можете выполнять следующие действия:

@RestController объединяет аннотации @Controller и @ResponseBody.Используя его, вы можете опустить аннотации @ResponseBody.

@GetMapping заменяет @RequestMapping(method = GET).

@RestController
public class SampleController {

    // autowire myDao object

    @GetMapping("/your_url")
    public ResponseEntity<List<UserBean>> list() {
        return ResponseEntity.ok(myDao.list());
    }
}
0 голосов
/ 21 сентября 2018

Используйте службу $ http для angularJs.

$http.get("/your_url").then(function(data){
    //do something with data here.
}, function(err){
});

И в вашем контроллере добавьте отображение для URL, которое возвращает данные.

@RequestMapping("/your_url")
public @ResponseBody List<UserBean> list() throws SQLException{
    return myDao.list();
}
// By Convention you should not directly call DAO from controller use services and delegates 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...