Java 如何从controller捕获特定值到JQuery?

Java 如何从controller捕获特定值到JQuery?,java,jakarta-ee,jquery,spring-mvc,Java,Jakarta Ee,Jquery,Spring Mvc,所以我正在开发一个JQuery。当我按下提交按钮时,数据将被添加到数据库中,并且会出现一个警报框,显示新数据的id。下面是一些代码 $(function(){ $('#submit').click(function() { if{ str = "some.htm?type=input&memo="+$("#memo").val()+"&description="+$("#description").val(

所以我正在开发一个JQuery。当我按下提交按钮时,数据将被添加到数据库中,并且会出现一个警报框,显示新数据的id。下面是一些代码

    $(function(){
    $('#submit').click(function()
    {       
        if{
          str = "some.htm?type=input&memo="+$("#memo").val()+"&description="+$("#description").val();                       
                             $.ajax({

                                url : str,
                                async : 'false',
                                success : function (id)   
                                                            { alert("....."); // I want                    the alert to display the newID after the data are successfully inserted into database}
                                }});  
                 }
   }});
这是控制器

protected Object formBackingObject(HttpServletRequest request) throws ServletException {
    Something something = new Something();
        dbHelper db = new dbHelper();


        if(request.getParameter("type")!= null)
        {
            type = request.getParameter("type");
            String memo = request.getParameter("memo");
            String description = request.getParameter("description");

            if(type.equalsIgnoreCase("input") == true)
                {
                String newId = db.getCode("idSome", "vrs_somedatabase", "PYR"); //will return newest id from database
                db.InsertSome(id, memo, description); //insert data into database, ignore it

                }
        }    
        return iuom;

    }  
我有另一种方法,但不太管用。。这是密码

$.post("some.htm", { memo: $("#memo").val(), description: $("#description").val() },
                                   function(id) {
                                     alert(....); // I want to display the newID after the data are successfully inserted into database
                                   }); 
和控制器

public ModelAndView onSubmit(Object command) throws Exception {
        inpt = (some) command;

            if
        {
            dbHelper db = new dbHelper();
            String newId = db.getCode("idSome", "vrs_somedatabase", "PYR"); //will return newest Id from database
            db.InsertSome(id, inpt.getMemo(), inpt.getdescription()); //insert into database, ignore it
        }
        ModelAndView model = new ModelAndView("someView","some","model");
        ModelAndView model = new ModelAndView("someView");
        model.addObject("newId",newId);

        return model;


    }
问题是,我无法显示新ID。。如何将它从控制器传递到JQuery

编辑:我找到了答案

我找到了答案。。所以基本上,我创建了另一个名为temperer.jsp的视图,它的功能只是帮助我存储值

<%@ include file="/WEB-INF/jsp/include.jsp" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page language="java" import="java.util.*"%>
<%@ page language="java" import="java.text.*"%>

${newId}

哇,别着急,我的朋友:)为它创建一个临时视图是个坏主意。您的代码中有一些地方可能会得到改进

一般来说,您在春季仍然使用旧的控制器编排方式。尽管这仍然是一种有效的方法,但您应该真正利用Spring注释

这样,您将能够编写非常简单整洁的控制器,如:

@Controller
public class MyController() {

   @RequestMapping("/some.htm")
   public @ResponseBody Long someActionImpl() {
      // some business logic 
      return id;
   }

}
在这种情况下,不需要创建其他视图来返回所需的数据

看一看细节

如果您想坚持使用实现控制器的“老方法”,那么请记住,
formBackingObject
不应该将数据持久化到数据库中,除非您完全知道自己在做什么

@Controller
public class MyController() {

   @RequestMapping("/some.htm")
   public @ResponseBody Long someActionImpl() {
      // some business logic 
      return id;
   }

}