关于JSP通过JS传值Java后台

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JSP通过JS传值Java后台相关的知识,希望对你有一定的参考价值。

现在有一个需求,我需要将用户在页面上输入的手机号码传递到后台,查询归属地运营商,然后将归属地运营商返回给前台做展示,然后通过归属地运营商以及另外的用户所以提供的条件(两个单选框)传到后台做查询。
现在被JS卡住了,本人是个菜,大神们帮帮忙,最好详细点,有代码或伪代码最好

在controller内部,用方法参数接收手机号码,然后拿到手机号码进行查询,得到归属地字符串,用model进行参数存储和视图的存储,返回modelandview就完成了回显。后面的同样的,通过方法参数,进行页面数据的接收即可;大致代码可以写一下

@RequestMapping("/查询归属地的action")
public ModelAndView findAddress(String telephone(这个参数名要和你表单中的电话输入框的name一样))
//在这进行查询,得到归属地,应该是个字符串吧
ModelAndView mv = new ModelAndView();
mv.addObject("页面回显的name", 归属地);
mv.setViewName("你要跳转的页面");//你的视图解析得配,不配的话可以给相对地址,但是不要放在web-inf下
return mv;

下面那个是一样的,参数用过方法参数接收即可
参考技术A

通过输入手机号码input的失去焦点事件触发一个ajax请求

<input tpye="text" id="phone"> //假设这个是你页面的手机号码输入框
<span id="place"></span> //这是显示号码归属地

<script type = "text/javascript" >
$(document).on('onblur', '#phone', function() //绑定phone的失去焦点事件
    var phone = $("#phone").val();
    $.ajax(  
          type: "post",  
          url: "XXXXXXXXXXX",  //你的根据号码获取归属地的请求路径     
          data: "phone="+pnone,      
          success: function(data)  //data返回号码归属地
              $("#place").html(data);
          
          )
  )
 </script>

追问

谢谢大神,还有一个问题,我还需要拿着归属地、运营商、作用域和类型再传到后台做查询,其中后两个是用户在页面上勾选单选框的,归属地跟运营商我是不是可以直接使用
var place = $("#place").val;
var operator = $("#operator").val;
这样来取到值?

追答

如果你的place是input的话可以用$("#place").val();,如果是span、td等标签的话需要用$("#place").html()来取值

追问

这样可以吗

追答

可以的,

val后面加()

本回答被提问者采纳
参考技术B

$("button").click(function()

$.ajax(url:"demo_test.txt",data:"number":"12344","id":"11111"success:function(result)

$("#div1").html(result);    );); url请求地址,data传过去的参数 result返回的值具体看ajax

例子是我百度的ajax

参考技术C 1 参考技术D 用了什么框架么 还是单纯的jsp+servlet追问

SSM+JQuery

JSP关于checkbox传值的问题

下面这段程序我想选择一些水果点击“确定”之后在confirm.jsp这页面能显示出我选择的水果名称。但是我不知道这两个页面的代码怎么写(我只写了一个页面,可能也不对),求教高手,谢谢!!!
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>checkbox选值测试</title>
</head>
<form method="get" action="confirm.jsp">
<body>
<input type="checkbox" name="1" value="苹果">苹果<br>
<input type="checkbox" name="2" value="香蕉">香蕉<br>
<input type="checkbox" name="3" value="雪梨">雪梨<br>
<input type="checkbox" name="4" value="香瓜">香瓜<br>
<input type="checkbox" name="5" value="蛇果">蛇果<br>
<input type="checkbox" name="6" value="地瓜">地瓜<br>
<input type="submit" value="确定">
</body>
</form>
</html>

老兄,这个比较简单也完全不用什么ajax就能获得你的多选框的值了,你不就只要把当前页面上选中的给提交到confirm,jsp页面显示出来吗,
你这个页面的<input type="checkbox" name="f" value="苹果">里name都改成一样的
只要你在confirm.jsp页面写上如下代码
<%
String arr[]= request.getParameterValues("f");//这时接收到的就是一个数组了
for(int i=0;i<arr.length;i++)
out.println(arr[i]);

%>
参考技术A <input type="checkbox" name="check1" value="苹果">苹果<br>
<input type="checkbox" name="check1" value="香蕉">香蕉<br>
<input type="checkbox" name="check1" value="雪梨">雪梨<br>
<input type="checkbox" name="check1" value="香瓜">香瓜<br>
<input type="checkbox" name="check1" value="蛇果">蛇果<br>
<input type="checkbox" name="check1" value="地瓜">地瓜<br>

后台:
String checks[] = request.getParameterValues("check1");
for(String check:checks)
if(check!=null && !"".equals(check))
System.out.println(check+"被选中!");

参考技术B 你可以写一个js方法,checkbox的name要一样,然后判断那几个选中,取得他的value值,弄成一个字符串,在提交表单的时候加上这个字符串的,你是不是没有和后台交互的呀?追问

代码

追答

//批量删除
function batchDeleteadmins(delTagAction, listTagAction)
var currentPage=$("#currentPage").val(); //获取当前页
//alert(currentPage);
var ids=new Array();
if($("input[name='ids']:checked").size()==0)
alert("请选择需要删除的内容!");
return false;


$("input[name='ids']:checked").each(function(i,obj)
ids[i]=$(obj).val();
);
// alert("哈哈");
var idStr=ids.join("-");
$.ajax(
url:delTagAction,
data:
sendTime:(new Date()).getTime(),
idStr:idStr
,
type:"post",
async:false,
dataType:"json",
success:function(data)
if(data.success==true)
$("#middle").load(listTagAction,

sendTime:(new Date()).getTime(),
currentPage:currentPage

)
alert("删除成功!!!");


);

这是ajax交互的,你自己看一下,改写一下。

以上是关于关于JSP通过JS传值Java后台的主要内容,如果未能解决你的问题,请参考以下文章

Js传值java后台?保存报错的解决方法

关于json传值大小写的“坑”

java web后台向前台传值的有几种方法?

(转)JSP向后台传递参数的四种方式

js 传值url 乱码问题

js传值后台中文乱码解决