我想建立一個Web應用程序與angularjs和春天休息。對於參考數據(性別,語言,用戶類型 - 使用組合框的類型),我使用了JPA的單表繼承(以ReferenceData作爲基類,語言,性別,用戶類型作爲子類)。
在我的html中,我需要創建用戶屏幕中組合框的UserType和Gender引用數據。我以下列方式限定在角JS一個ReferenceDataService:
myapp.factory('ReferenceData', function ($resource) {
return $resource('app/rest/referenceDatas/:id', {}, {
'query': { method: 'GET', isArray: true},
'get': { method: 'GET'},
'genders': {method:'GET', isArray: true, cache:true},
'userTypes': {method:'GET', isArray: true, cache:true},
});
});
以我angularJs UserServiceController我有以下:
myApp.config(function ($routeProvider, $httpProvider, $translateProvider, USER_ROLES) {
$routeProvider
.when('/user', {
templateUrl: 'views/users.html',
controller: 'UserController',
resolve:{
resolvedUser: ['User', function (User) {
return User.query().$promise;
}],
resolvedGender: ['ReferenceData', function (ReferenceData) {
return ReferenceData.genders().$promise;
}],
resolvedUserTypes: ['ReferenceData', function (ReferenceData) {
return ReferenceData.userTypes().$promise;
}]
},
access: {
authorizedRoles: [USER_ROLES.all]
}
})
});
以下是從我的彈簧控制器代碼片段:
@RequestMapping(value="/rest/referenceDatas/genders",
method=RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<? extends ReferenceData> genders(){
return referenceDataRepository.getByType("GENDER");
}
@RequestMapping(value="/rest/referenceDatas/userTypes",
method=RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<? extends ReferenceData> userTypes(){
return referenceDataRepository.getByType("USER_TYPE");
}
//DEFAULT getALL
@RequestMapping(value = "/rest/referenceDatas",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<ReferenceData> getAll() {
log.debug("REST request to get all ReferenceDatas");
return referenceDataRepository.findAll();
}
我的問題是我每次打開創建用戶屏幕性別和用戶類型選擇盒裝填充所有類型從Reference_Data表和日誌/調試顯示臨時工每次調用getAll時,我都會調用referencedata angularjs服務上的自定義方法語言和userTypes。
對此非常感謝。
感謝您的答覆普拉香特。我做了這些更改,並看到對性別的調用(在Chrome控制檯中GET GET http:// localhost:8080/app/rest/referenceDatas/genders?cacheBuster = 1419006455309)。但它從服務器返回400錯誤請求。我是否必須在Spring控制器中更改我的請求映射url?類似/ rest/referenceDatas /性別/ {gender}? – r3doc 2014-12-19 16:38:56
我不認爲需要更改Spring Controller URL映射。瀏覽器發送的請求有問題。您可以檢查服務器日誌哪部分請求錯誤/無效。 – 2014-12-20 06:16:07