【问题标题】:Insert into database using AngularJS and SPRING使用 AngularJS 和 SPRING 插入数据库
【发布时间】:2015-12-10 12:57:42
【问题描述】:

我对 AngularJS 还是很陌生,我想弄清楚如何从我的 SPRING 控制器调用方法,或者有其他方法可以实现吗?

我的 app.js 看起来像这样:

 //  Define a module
var myApp = angular.module('createWorkshopApp', []);

//  Create controller
myApp.controller('mainController',
        function ($scope, $http) {

            $scope.workshop = {};

            $scope.createWorkshop = function () {
                if ($scope.workshopName == "" || $scope.workshopDescription == "") {
                    alert("Insufficient Data! Please provide values for workshop name and description");
                }
                else {
                    $http({
                        method: 'POST',
                        url: '/create',
                        data: $scope.workshop
                    }).
                            success(function (data, status, headers, config) {
                                // Into database.. ??

                                alert('Workshop saved!');
                            }).
                            error(function (data, status, headers, config) {
                                if (status == 400) {
                                    alert('404');
                                } else {
                                    alert('Unexpected server error.');
                                }

                            });
                }

            };

        });

我的 WorkshopController.java 看起来像这样:

>  /**
>      *
>      * @param workshop
>      * @param result
>      * @return view of the workshop
>      */
>     @RequestMapping(value = "/workshop/create", method = RequestMethod.POST, headers = "Accept=application/json")
>     public String addWorkshop(@Valid Workshop workshop, BindingResult result) throws ParseException {
>         if (result.hasErrors()) {
>             return BASE_URL + "create";
>         } else {
>             this.workshopService.addWorkshop(workshop);;
>             return "redirect:" + BASE_URL + "view/" + workshop.getId();
>         }
>     }

我还有一个名为 workShopService.java 的 java 文件,看起来像这样

@Service
@Transactional
public class WorkshopService {

    @Autowired
    private WorkshopDAO workshopDAO;


    public void addWorkshop(Workshop workshop) {
        workshopDAO.addWorkshop(workshop);
    }

    public Workshop getWorkshop(int id) {
        return workshopDAO.getWorkshop(id);
    }

    public List<Workshop> getWorkshops() {
        return workshopDAO.getWorkshops();
    }

}

我从 SPRING(MVC) 和 HIBERNATE 开始,现在我对控制器的作用感到困惑,因为使用 AngularJS 你已经创建了一个控制器。

【问题讨论】:

  • 角度控制器和弹簧控制器是不同的。角度控制器负责在前端内部进行路由。 Spring 控制器有责任在您需要时调用持久层您可以使用 SpringREST intead of Spring MVC 并创建一个 RESTFUL API。

标签: java angularjs spring hibernate spring-mvc


【解决方案1】:

在 Spring 中,您拥有业务逻辑。所以它负责连接模型和视图,用于模型和视图中的类之间进行通信。这个模型是车间类,视图是 json 响应。

在 Angular 应用程序中,您还有一个 MVC 模式。控制器具有相同的功能(连接模型和视图),但在这种情况下,视图是 html,模型是车间 javascript 对象。

【讨论】:

  • 您好 reos,感谢您提供的信息。这是否意味着我需要更换 AngularJS 控制器的控制器?你能给我举个例子吗?提前致谢
  • 我认为这是一个很好的例子:link
  • 我认为你这样做是正确的。在客户端(AngularJs)中有很多事情是你无法管理的,例如数据库连接。
猜你喜欢
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2022-01-08
  • 2014-11-20
  • 2012-08-22
  • 2019-10-22
相关资源
最近更新 更多