【问题标题】:Variable test value after post event发布事件后的可变测试值
【发布时间】:2019-08-26 04:52:46
【问题描述】:

我试图在 javascript 文件中的 post 事件(方法函数存在于 spring 服务器端)之后测试一个变量。通常根据这个值,我会决定是否向其他用户发送通知。 首先,我检查订单号是否存在,如果存在,我将不会向用户发送通知,如果不存在,我会保存订单并向用户发送通知,告知最终用户提交了新订单。 这是我的 javascript 代码:

    $('#btn-save').on('click', function (e) {
	var test = document.getElementById("error").value ;
	console.log("test =", test);
	  
	   if (test == "test1") {
		   
		   console.log("test1 =", test);

			 toastr.options = {
					  "closeButton": true,
					  "debug": false,
					  "newestOnTop": false,
					  "progressBar": false,
					  "positionClass": "toast-top-right",
					  "preventDuplicates": false,
					  "onclick": null,
					  "showDuration": "3300",
					  "hideDuration": "1000",
					  "timeOut": "0",
					  "extendedTimeOut": "0",
					  "showEasing": "swing",
					  "hideEasing": "linear",
					  "showMethod": "fadeIn",
					  "hideMethod": "fadeOut"
			 }
			
				 
			 toastr["error"]("error !!!!");

		   
		 } else {
		   
			 console.log("test =", test);
			   sendForm();
			 
						 
		 }
	
});

我通过弹簧控制器方法的变量测试,如下所示:

 String test = "test";


@PostMapping("/saveordre")
	public String formOrdre(Model model, @Validated OrdreAjout ordre1, @Validated OrdreSupp ordre2, String typeOrdre,
			BindingResult bindingresult, @RequestParam("num_ord") String num_ord, Notif_A2 not_a2,
			@RequestParam("Fichier1") MultipartFile file) {
		 String test_error = null;
		String p = "0";
		if (ordreRepository.findByNum(num_ord) != null) {

			 test = "test1";
			  test_error ="test1";
			 String size2 = null;
				List<Notif_A2> notilist = noti_a2.listNotifA2();
				long size = notilist.stream().count();
				size2 = Long.toString(size);
				model.addAttribute("size2", size2);
				model.addAttribute("listnoti", notilist);

				String size3 = null;
				List<Notif_A3> notlist = noti_a3.listNotifA3();
				long size1 = notlist.stream().count();
				size3 = Long.toString(size1);
				model.addAttribute("size3", size3);
				model.addAttribute("note", notlist);
			 
			 
				model.addAttribute("error4", test);

			model.addAttribute("error3", test_error);
			model.addAttribute("ordre", new Ordre());
			return "/formordre";

		}

		else {
			 test = "test";
				model.addAttribute("error4", test);

			String filename = StringUtils.cleanPath(file.getOriginalFilename());

			try (InputStream inputStream = file.getInputStream()) {
				Files.copy(inputStream, Paths.get(UPLOADED, filename), StandardCopyOption.REPLACE_EXISTING);
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				
				}
			}

			catch (IOException e) {
				model.addAttribute("error1", e);
			
				return "FormOrdre";
				
			}

			try {
				if (typeOrdre.equals("OA")) {
					ordreMetier.save(ordre1);
					not_a2.setOrdre(ordre1);
					not_a2.setFlag_stat_a2("0");
					not_a2.setFlag_stat_a3("0");
					not_a2.setTyp_noti("add");
					noti_a2.save(not_a2);
				}

				else {
					ordreMetier.save(ordre2);
					not_a2.setOrdre(ordre2);
					not_a2.setFlag_stat_a2("0");
					not_a2.setFlag_stat_a3("0");
					not_a2.setTyp_noti("add");
					noti_a2.save(not_a2);
				}
            
				

				
				
				
				
			}

			catch (Exception e) {
		
				model.addAttribute("error", e);
				return "FormOrdre";
				

			}

		
			
			String test2 = "test2";
			model.addAttribute("success", test2);
			model.addAttribute("ordre", new Ordre());
			
			return "/formordre";
			
		}

这个代码不能很好地工作,它在订单号存在时发送通知不正确并且在订单不存在时不发送通知。任何人都知道如何解决它!!!!!!

【问题讨论】:

  • 通过首先检查服务是否返回来调试代码。 console.log("test =", test);的值是多少
  • 没有出现在浏览器的控制台开发者工具中
  • 你确定点击事件被触发了吗?在 `document.getElementById("error").value` 之前写一个日志,可能元素不存在并给出错误。控制台是否显示任何错误?
  • 我使用 sockjs 和 stomp js 进行通知,这可能是控制台中没有出现 test 值的原因。 post事件没有错误。

标签: javascript spring spring-boot spring-data-jpa


【解决方案1】:

我认为您的问题在 jquery 库中,如果您没有添加,请尝试此链接 前

但是如果你添加了检查你的代码位置,如果你把它放在复制它到这个链接上面的行下面。

例子:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 

<script>
.....
</script>

如果您的代码像这样重试复制下面的链接,就像这样:

<script>
.....
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 

【讨论】:

  • 你用过这个链接吗?获取 jquery 库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 2011-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多