如何将/ url / {} pathvariables映射到Ext Js Store

时间:2017-03-02 22:34:48

标签: javascript java extjs

我有一个动态URL,它在控制器中验证令牌,从URL中的id获取详细信息,并将详细信息传递给EXt js store / mode / view / controller。但是,我不知道如何格式化sotre中的url以映射到java控制器。

java controller:

@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;

ext js store:

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'
        }
    })
});

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

1 个答案:

答案 0 :(得分:1)

您需要在需要时明确加载此商店 -

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.
        }           
    });
}

在需要的时间和地点调用此方法。 如果这有帮助,请告诉我。