如何将 /url/{} 路径变量映射到 Ext Js Store

use*_*849 5 javascript java extjs

我有一个动态 URL,它对控制器中的令牌进行身份验证,从 URL 中的 id 获取详细信息,并将详细信息传递到 EXt js 存储/模式/视图/控制器。但是,我不知道如何格式化 sotre 中的 url 以映射到 java 控制器。

java控制器:

@Controller
@RequestMapping("/resetPassword")
public class GmiResetPasswordController {
    @RequestMapping(value = "/{id}/{token}", method = RequestMethod.GET)
        public
        @ResponseBody
        User getDetails(Model model, HttpServletRequest request, @PathVariable(value = "id") int id, @PathVariable(value = "token") String token) {
    // [..]
    return details;
Run Code Online (Sandbox Code Playgroud)

外部 js 商店:

Ext.define('resetPassword.store.resetPasswordStore', {
    extend: 'Ext.data.Store',
    model: 'resetPassword.model.resetPasswordModel',
    storeId: 'resetPasswordStore',
    autoload: true,
    proxy: new Ext.data.HttpProxy({
        type: 'ajax',
        timeout : 36000,
        url: '/resetPassword/{id}/{token}',
        reader: {
            type:'json'
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

如何在商店中格式化它以便将其加载到视图中?现在它只是在页面中将用户详细信息显示为字符串,其中没有任何内容。

Har*_*hal 3

您需要在需要时显式加载此存储 -

loadResetPasswordStore : function(){
    var id = 'idVal';
    var token = 'tokenVal';
    var store = Ext.getStore('resetPassword.store.resetPasswordStore');
    if(store != null){
        var proxyUrl = '/resetPassword/'+ id + '/'+ token ;
        store.getProxy().setUrl(proxyUrl);
    }
    store.load({
        callback : function(records) {
            // Code to be executed after store is loaded.
        }           
    });
}
Run Code Online (Sandbox Code Playgroud)

在需要的时间和地点调用此方法。让我知道这是否有帮助。