【问题标题】:Using ajax to dynamically populate model attribute使用ajax动态填充模型属性
【发布时间】: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


    【解决方案1】:

    试试

    handleAs: "json",
    "Content-Type": "application/json; charset=utf-8"

    另外,在您的项目中包含 Jackson 库:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.1</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      相关资源
      最近更新 更多