查询数据库并在同一页面上显示结果
Query database and display result on the same page
我目前正在研究 spring 框架。我在 abc.jsp 页上有一个按钮,它向我的控制器发送 GET 请求。控制器调用 DAO 中的方法,并返回包含数据的列表并将其转发给 def.jsp。有没有办法直接在abc上显示数据表.jsp当我们单击按钮时。在我的研究中,我发现AJAX是一种做到这一点的方法。我以前没有使用过 AJAX,我不确定如何使用它,因为我需要获取列表。任何帮助将不胜感激。我在下面附加了所需的代码片段。提前感谢,
美国广播公司.jsp
<form action="abcd" method="get">
<button type="submit" onclick="startSpin()">Items in ABCD</button>
</form>
控制器代码
@Controller
@RequestMapping("application")
public class ApplicationController {
@Autowired
AppDAO AppDAO;
private static final Logger LOGGER = LoggerFactory.getLogger(MasterDataObjectEntityController.class);
@RequestMapping (value="/abcd",method=RequestMethod.GET)
public String getItemsInABCD(ModelMap map, HttpServletRequest req){
LOGGER.info("ApplicationController :: ");
try {
map.addAttribute("ItemsInABCDList", AppDAO.getItemsInABCDList());
} catch (SQLException e) {
LOGGER.error("ApplicationController :: getItemsInABCDList:: SQLException ::"+e.getMessage());
}
return "def"; <-- goes to def.jsp
}
}
定义.jsp
<table class="table table-bordered table-striped table-hover"
id="mytable" style="width: 95%;">
<thead>
<tr style="font-weight: bold;">
<td>col 1</td>
<td>col 2</td>
</tr>
</thead>
<tbody>
<c:forEach var="myvar" items="${ItemsInABCDList}">
<tr>
<td>${myvar.itemNumber}</td>
<td>${myvar.itemName}</td>
</tr>
</c:forEach>
</tbody>
</table>
<script type="text/javascript">
var mytable= null;
$(document).ready(function() {
mytable= $('#mytable').dataTable(
{
//columnDefs: [ { orderable: false, targets: [0] }]
columnDefs: [{
targets: "datatable-nosort",
orderable: false
}]
});
$('[data-toggle="tooltip"]').tooltip();
});
</script>
您需要对代码进行一些小的更改。如果可行。您可以使用Javascript函数通过POST/GET调用Axaj Request
。调用 createAjaxRequest 函数与请求 Url 即 abcd,并指定您的回调功能名称,即您的回调功能名称,即您的回调函数名称
createAjaxRequest("abcd",yourCallbackFuncationName);
function createAjaxRequest(requestURL,callbackFuncation){
var xmlhttp;
startStopLoader(true);
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 ){
if(xmlhttp.status == 200){
try{
callbackFuncation(xmlhttp.responseText);
}catch(e){
}
}
}
}
xmlhttp.open("GET",requestURL,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
}
function yourCallbackFuncationName(response) {
// you can manupulate your list stored in response variable
// you can generate your tr/td here and put it back in your main
table using innerHTML
}
您需要在 java 文件中使用 @ResponseBody 并返回项目列表。 可能看起来像下面的代码
@RequestMapping (value="/abcd",method=RequestMethod.GET)
@ResponseBody
public ItemsInABCDListBean getItemsInABCD(ModelMap map, HttpServletRequest req){
LOGGER.info("ApplicationController :: ");
try {
ItemsInABCDListBean ItemsInABCDList = AppDAO.getItemsInABCDList();
} catch (SQLException e) {
LOGGER.error("ApplicationController :: getItemsInABCDList:: SQLException ::"+e.getMessage());
}
return ItemsInABCDList; // returns List you want to show
}
希望这对您有所帮助。它可能是应用程序的通用代码
相关文章:
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- JavaScript循环无法正确计算/显示结果
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- BMI计算器以Javascript显示结果
- 在表中显示结果
- onchange选择get value并执行查询,然后在同一页面上显示结果
- 搜索XML文件并使用javascript显示结果
- Moment.js不显示结果
- 使用jQuery延迟表单输入,并在延迟后在同一页面上显示结果
- 防止 PHP 在新页面中显示结果
- jquery jqgrid 不显示结果,具体取决于 JSON 对象中的参数
- Angular-如何显示结果,仅在未选中时显示
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- jqueryajax帖子将我发送到操作页面,并且不会显示结果数据
- 添加两个数字,并使用Javascript在文本框中显示结果
- 接受用户输入,与JSON数据匹配,并以javascript显示结果
- 自动完成 JQuery 不显示结果
- 控制台.log或显示结果的函数
- 提交表单,使用脚本处理信息,并在同一页面上显示结果
- AJAX 实时搜索仅当结果以相同的第一个字母开头时才显示结果