我目前正在开发一个使用标准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 字段的$ {hierarchyies}集合/ strong>字段已更改。
应该调用的控制器方法是
@RequestMapping(value = "/getHierarchiesForType", method = RequestMethod.GET)
public @ResponseBody List<Hierarchy> getHierarchiesForType(@RequestParam("type") String typeStr){
......
.....
return hierarchyList;
}
我想在每次更改 类型 时使用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);
}
});
});
});
如何将此类调用的结果映射到$ {hierarchyies}属性?如果是这样,这是最好的方式吗?是否可以动态更改/生成模型属性?
答案 0 :(得分:0)
尝试
handleAs: "json",和
"Content-Type": "application/json; charset=utf-8"
此外,在您的项目中包括杰克逊图书馆:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.2.1</version>
</dependency>
答案 1 :(得分:0)
(所以我没有得到OP&#39; d ...)
这是一个答案...... 通过ajax获取数据,通过jquery / javascript(ajax响应表单字段)形成
tadaaaa呵呵......
但我仍然(真的)喜欢听Neriyan的想法(确实需要)!!!