【发布时间】:2014-02-10 08:27:39
【问题描述】:
我目前正在开发一个使用标准 Dojo 前端的 Spring Roo 项目。我希望根据从上一个选择中选择的选项动态加载我的一个选择框。 .jspx 文件如下所示:
<form:create id="fc_za_co_itdynamics_survey_domain_Hierarchy" modelAttribute="hierarchy" path="/hierarchys" render="${empty dependencies}" z="uMMWuqMHFrh8u9++PH5WZfwEDGg=">
<field:input field="name" id="c_za_co_itdynamics_survey_domain_Hierarchy_name" min="2" required="true" z="0obmzH2lsnbEXbepG3O0z8Sl0SE="/>
<field:select field="type" id="c_za_co_itdynamics_survey_domain_Hierarchy_type" items="${hierarchytypeenums}" path="hierarchytypeenums" required="true" z="DstTv0Lvaswu9kaBdPwzpxdy9ZQ="/>
<field:select field="parentHierarchy" id="c_za_co_itdynamics_survey_domain_Hierarchy_parentHierarchy" itemValue="id" items="${hierarchys}" path="/hierarchys" z="7w1IXuZxyYUBZ/VIhDvss5HnIUw="/>
</form:create>
所以基本上我希望 parentHierarchy 字段的 ${hierarchies} 集合在 type 字段已更改。
应该调用的控制器方法是
@RequestMapping(value = "/getHierarchiesForType", method = RequestMethod.GET)
public @ResponseBody List<Hierarchy> getHierarchiesForType(@RequestParam("type") String typeStr){
......
.....
return hierarchyList;
}
我正在考虑在 type 更改时使用 Ajax 调用来调用控制器方法。我的代码如下
dojo.addOnLoad(function() {
var hierarchyType = dijit.byId("_type_id");
dojo.connect(hierarchyType,"onChange",function(){
var url = "${ajax_url}?type=" + hierarchyType;
dojo.xhrGet({
url : url,
handleAs : "??",
preventCache: true,
headers: {
"Content-Type": "??"
},
load : function(data){
......
},
error : function(error) {
console.log("error", error);
}
});
});
});
如何将此类调用的结果映射到 ${hierarchies} 属性?如果是这样,这是最好的方法吗?模型属性是否可以动态更改/生成?
【问题讨论】:
标签: java ajax dojo spring-roo