【发布时间】:2019-08-13 23:18:39
【问题描述】:
我有一个 Spring Boot 应用程序,我想从搜索页面 (jsp) 调用控制器,通过 AJAX 获取响应并在 jsp 中更新。现在在进行提交调用时,我什么也没得到。 (补充一点,如果我对控制器进行休息 api 调用,我会收到来自 db 的响应,即http://localhost:8080/problems/{problemId})。基本上我需要知道如何结合从 ui 到 api 的响应。请建议是否要添加任何映射或绑定变量。
我的jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file = "header.jsp" %>
<div>
<div>
<h1>Lookup from Oracle database</h1>
</div>
<div>
<h2>${message}</h2>
<td>Search Category:</td>
<td>
<select name="searchcategories">
<option value="-1">-Select Category-</option>
<option value="problem">problem</option>
<option value="attachment">attachment</option>
<option value="tstt">tstt</option>
</select>
</td>
<td>Entity Id:</td>
<input type="text" name="problemId" id="search_data" class="form-control" placeholder="Search problem no..">
<button type="submit" id="submit_btn" onclick="">Search</button>
</div>
</div>
<%@ include file = "footer.jsp" %>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#submit_btn').click(function(){
var problemId = $('#search_data').val();
$.ajax({
type: "GET",
dataType : "json",
url : "http://localhost:8080/problems/" + problemId,
success : function(data) {
/* $("#response").html(data); */
var parsed_data = JSON.parse(data);
console.log(parsed_data.success);
}
});
return data;
});
});
$("form").submit(function(){
alert("Submitted");
});
</script>
</html>
我的控制器类(当我通过休息直接调用时给出响应,即http://localhost:8080/problems/{problemId}):
@RestController
@RequestMapping("/problems")
public class BugController {
@Autowired
BugRepository problemRepository;
@GetMapping("/{problemId}")
public Bug getProblemById(@PathVariable Long problemId) {
return problemRepository.findByProblemId(problemId);
}
}
期望 jsp 调用控制器,通过发送正在搜索的参数并将响应返回给 jsp enter image description here
【问题讨论】:
-
您的网络标签是否显示正在拨打的电话?还有一件事是你的 ajax 调用无论如何都没有被使用
-
这是我在点击检查元素中的提交按钮时得到的“加载资源失败:服务器响应状态为 500 ()”。我不是 UI 专家,但正在研究一些 POC。让我知道更多关于我应该做什么。
-
我可以调用控制器,但没有得到响应,请建议(我猜它必须与 return 做一些事情): $.ajax({ type: "GET", dataType : "json", url : "localhost:8080/problems" + questionId, 成功: function(data) { $("#response").html(data); } });返回数据;
-
用您更新的结构化代码更新您上面的帖子。问题 ID 是否在 Ajax 调用之前正确设置?
-
嗨 Edwin,更新了主要部分中的代码,无法通过在 cmets 中点击“ENTER”来进行格式化......无论如何我遇到了一些脚本错误,调用将转到 db 并执行休眠查询,我可以用邮递员回复。添加了问题的图片,“ReferenceError: Can't find variable: data”和“SyntaxError: JSON Parse error: Unexpected identifier "object""
标签: javascript java ajax spring-boot spring-mvc