2017-03-02 62 views
3

我有一个动态的URL,并在控制器认证令牌,得到的URL标识的细节,并沿细节到Ext JS的商店通过/模式/视图/控制器。但是,我不知道如何格式化映射到java控制器的sotre中的url。如何映射/ URL/{} pathvariables到Ext JS的商店

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; 

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

我怎么在店里格式化这个以便它加载到视图?现在它只是将页面中的用户信息显示为一个字符串,没有任何内容。

+0

您需要手动进行存储加载,因为我认为ID /令牌将在运行时(所以没有硬编码值)店。之前加载,你将不得不更换店内的这些代理PARAMS产生。 回复如果你有一些担心 – Tejas

回答

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

调用此方法可在何时何地需要。 让我知道这是否有帮助。

+0

现在它给我这个:http:// localhost:8080/resetPassword/idVal/tokenVal/go.htm?_dc = 1488575070491&page = 1&start = 0&limit = 25 错误400 因为它加载tokenVal而不是实际的字符串到URL – user7470849

+0

var id ='idVal'; var token ='tokenVal'; 这些是虚拟值。您将所需的值分配给这些变量。 – Harshal

+0

我不知道这些值,它们来自URL。我无法每次手动设置值。当密码恢复电子邮件发送给用户时,会生成一个随机令牌 – user7470849

相关问题