Java 如何从controller捕获特定值到JQuery?
所以我正在开发一个JQuery。当我按下提交按钮时,数据将被添加到数据库中,并且会出现一个警报框,显示新数据的id。下面是一些代码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(
$(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;
}
}