Java 如何在更改选项框值时更改文本字段的值

Java 如何在更改选项框值时更改文本字段的值,java,jquery,ajax,spring,hibernate,Java,Jquery,Ajax,Spring,Hibernate,大家好,我正在做一个使用SpringMVC和Hibernate框架的项目。我的问题是,我正在处理一个表单,而在表单a选项框中工作。我想在更改选项框值时更改文本字段值。 我已经试过了: <script type="text/javascript" > $(document).ready(function(){ $("#venderid").change(function(){ $.getJSON("getVenderById.htm",

大家好,我正在做一个使用SpringMVC和Hibernate框架的项目。我的问题是,我正在处理一个表单,而在表单a选项框中工作。我想在更改选项框值时更改文本字段值。 我已经试过了:

<script type="text/javascript" >
    $(document).ready(function(){
        $("#venderid").change(function(){
            $.getJSON("getVenderById.htm", {venderId: $(this).val()},
            function(vender){
                var data = JSON.parse(vender);
                var mail = data.email;
                $("#mail").html(mail);
            }
);
        });
    });

</script>
控制器:-


一切正常,但如何根据供应商id填写电子邮件文本框。回调函数中是否有错误,或者如何利用vender对象的值。Apache服务器控制台窗口上还有一件事===========Ajax调用========打印意味着数据来自数据库。但是我如何利用它请帮忙。先谢谢你

在ajax回调处理程序中,您期望的是供应商,而在控制器中发送的是MAV。尝试在控制器中执行此操作

@RequestMapping(value = "/getVenderById.htm")
    @ResponseBody
    public Vender getVender(@RequestParam("venderId") int vId){
        return venderDAO.findById(vId);
    }

我想在minion的回答中添加您需要删除.htm的内容,因为您需要JSON作为响应

更好的做法是使用ContentNegotiatingViewResolver并将JSON响应设置为默认值


这是一个链接,请调试或控制台。在回调中记录供应商值,如下所示:

function(vender){
       console.log(vender); 
       var data = JSON.parse(vender);
       var mail = data.email;
       $("#mail").html(mail);
}

然后将值复制到这里

我没有得到u。我将使用您的建议您的意思是,我应该从请求中删除.htm??首先,您需要使用@minion的答案。此外,您还需要在春季配置Jackson mapper,它将Java对象转换为JSON响应,如果您以前没有这样做。我在jQuery代码中使用的方法正确吗??我的意思是我的回调函数代码,请检查它。使用浏览器的网络检查器查看实际返回的内容-您需要JSON,但您可能得到了不同的结果。使用调试器探测代码中的某些点,以验证问题从何处开始出现。在问题中包括所有相关信息。
@RequestMapping(value = "/getVenderById.htm")
    @ResponseBody
    public Vender getVender(@RequestParam("venderId") int vId){
        return venderDAO.findById(vId);
    }
function(vender){
       console.log(vender); 
       var data = JSON.parse(vender);
       var mail = data.email;
       $("#mail").html(mail);
}