我正在研究Spring-Mvc project
。我使用DAO
和CONTROLLER
来获取DB
数据并设置输出。
我的视图由JSP
和JS
组成。
我必须将DB
数据放入JS
文件中。因此,我尝试通过Ajax
解决此问题,但失败了。
DAO.java
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Service;
import net.point.service.game.config.SqlSessionFactoryDao;
@Service
public class ADao {
private SqlSessionFactory sqlSessionFactory;
public ADao() {
sqlSessionFactory = SqlSessionFactoryDao.getSqlSessionFactory();
}
public List<Map<Object,Object>> selectAllPayment() {
SqlSession session = sqlSessionFactory.openSession();
List<Map<Object,Object>> payments = new ArrayList<Map<Object, Object>>();
try {
payments = session.selectList("AdminPaymentDao.selectAllPayment");
System.out.println("payments: " + payments);
System.out.println("-----------------------------------------------------");
}catch (Exception error) {
error.printStackTrace();
} finally {
session.close();
}
return payments;
}
}
Controller.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import ch.qos.logback.classic.Logger;
import net.point.service.game.admin.payment.collection.ADao;
@Controller
public class Controller {
private static Logger logger = (Logger) LoggerFactory.getLogger(AdminPaymentController.class);
@Autowired
ADao aDao;
@ResponseBody
@RequestMapping(value="/adminRequestCharge", method = RequestMethod.POST)
public Map<String, Object> selectAllPayment() {
Map<String, Object> result = new HashMap<String, Object>();
logger.info("selectAllPayment start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("gggggggggggggggggggggggggggggggggggggggggggggg");
try {
List<Map<Object, Object>> resultList = new ArrayList<Map<Object, Object>>();
resultList = aDao.selectAllPayment();
for (Object list : resultList) {
System.out.println("resultList:" + resultList);
}
result.put("jqgrid_data", resultList);
}catch (Exception error) {
error.printStackTrace();
}
return result;
}
}
js文件
$(function(){
//ajax
$("#chargeRequestList").submit(function() {
let queryData = $(this).serialize();
$.ajax({
url:"/adminRequestCharge",
type: "POST",
dataType: "json"
data: queryData
success: function(result) {
console.log(result);
}
})
})
setRequestList(jqgrid_data);
// grid resize
$(window).on('resize.jqGrid', function() {
$("#chargeRequestList").jqGrid('setGridWidth', $(".grid-cover").width());
})
});
function setRequestList(jqgrid_data){
jQuery("#chargeRequestList").jqGrid({
data : jqgrid_data,
...
我想要的价值形式:
var jqgrid_data = [{
seq: '1512',
status : '0',
value : '10,000',
purchase_means : '1001',
paid : '20',
reg_date : '2019-06-24 12:43:33',
pay_status : '0',
paid_date : '2019-06-08 10:33:23',
func : '1'
},
{
...
}
springs
以前有很多我从未熟悉过的东西,而我对Java
和Ajax
并不很熟悉。
这可能是一个基本错误,因为缺少很多东西,
我需要你的帮助
提前谢谢
答案 0 :(得分:0)
您必须插入url以匹配控制器的值,如下面的代码所示。 url不能等于View的值。
$.ajax({
url:"/ChargeData",
type: “POST”,
dataType: “json”,
data: data,
success: function(result) {
console.log(result.jqgrid_data);
setRequestList(result.jqgrid_data)
}
})
答案 1 :(得分:0)
从示例ajax数据集中:
[
{
seq: '1512',
status : '0',
value : '10,000',
purchase_means : '1001',
paid : '20',
reg_date : '2019-06-24 12:43:33',
pay_status : '0',
paid_date : '2019-06-08 10:33:23',
func : '1'
},
....
]
现在创建一个类,使用与jsonObject i,e,
的键相同的名称声明其字段。public class YourDto{
private String seq;
private String status;
....
...
}
现在用以下代码替换您的Controller方法声明:
@ResponseBody
@RequestMapping(value="/adminRequestCharge", method = RequestMethod.POST)
public Map<String, Object> selectAllPayment(HttpServletRequest request, @RequestBody List<YourDto> yourDataList, HttpServletResponse response) {
//your logic here;
.....
}
希望这会有所帮助。