jsp 与 javascript 变量相互调用方法

web 专栏收录该内容
3 篇文章 0 订阅

获取后台的值,如request对象,例如:获得权限信息并展示,一段JavaScript 代码如下

1)赋值给页面

<script  type="text/javascript">
	function initRight()
	{
		var rights='<%=(String)request.getAttribute("rights") %>';
		var rightArr = rights.split(",");
		var size = rightArr.length;
		var obj;
		for(var count =0 ; count<size;count++ )
		{
			obj = document.getElementById(rightArr[count]);
			if(obj!=null && obj.type == "checkbox")
			{
				obj.checked = true;
				continue;
			}
			if(obj!=null && obj.type == "hidden")
				obj.value=rightArr[count];
		}
	}

</script>

2)展示给客户

 对应html代码如下

							<tr>
								<td align="left">
									知识库管理

								</td>
							</tr>

							<tr>
								<td align="right">
									<table width="95%" align="right" class="roletable"
										id="label_aaa_03">
										<tr class="bgcolor_gray">
										
											<td width="15%">
												知识库管理

											</td>
											
											<td align="left" class="bgcolor_gray">
												<input name="rightId" type="checkbox" id="query|4" value="query|4" οnclick="rightOncheck({0:'update|4',1:'query|4'},'query|3','query|3')">
												查询
												<input name="rightId" type="checkbox" id="update|4" value="update|4" οnclick="rightOncheck({0:'update|4',1:'query|4'},'query|3','query|3')">
												修改
												<input name="rightId" type="hidden"  id="query|3">
											</td>
										</tr>
										
									</table>
								</td>
								</tr>
							<tr>

3)

function rightOncheck(eles,destId,destVal)
{
	
    if(null != eles)
    {
        var element;
        var setValue = false;
        for(var v in eles)
        {
        	
        	var tempv = document.getElementById(eles[v]).value;
        	var strv;

            if($Id(eles[v]).checked)
            {
          
            	if(eles[v].indexOf("Update")>0)//新增
            	{
            		
            		strv =eles[v].replace("Update","Query");

            		document.getElementById(strv).checked=true;
            	}
            	if(tempv.indexOf("update|")>-1)//修改
            	{
            		strv =eles[v].replace("update","query");   
            		document.getElementById(strv).checked=true;
            	}
                setValue=true;
            }
        }
        var val=setValue?destVal:"";
        $Id(destId).value=val;
    }
}

function $name(name){return document.getElementsByName(name);}
function $Id(id){return document.getElementById(id);}

一、页面中的JavaScript的数据如何提交给后台的jsp程序 
① 可以将JavaScript的数据以xxx.JSP?var1=aaa&var2=bbb的形式作为URL的参数传给JSP程序,此时在jsp中用 
<%String strVar1=request.getParameter("var1");%>就可以获取到JavaScript脚本传递过来的数据; 
② 使用JavaScript通过在表单里加入隐藏域信息,然后用表单提交的方式把数据传递给JSP程序。

<script language="JavaScript"> 
<!-- 
/*************************************************************** 
* JavaScript脚本,放置在页面中的任何位置都可以 
* insertclick()函数获取JSP传递到页面中的变量varMC, 
* 然后就可以在JavaScript中修改这个变量的值,再通过 
* post的方式提交给JSP程序来使用。 
***************************************************************/ 
function insertclick(){ 
var1 = document.all.mc.value; //获取页面form中的变量值 
var1 = var1 + "名称"; 
document.insertForm.submit(); 
} 
//--> 
</script> 

<!-- html页面form表单,放置在html页面中的位置不限 --> 
<foRM name="insertForm" method="post" action="yourJSP"> 
<!-- 下面这一句是获取JSP程序中传递过来的变量值 --> 
<input type="hidden" name="mc" value="<%=varMC%>"> 
<input type="button" value="提交" οnclick="insertclick()"> 
</form> 

二、页面中的JavaScript的数据如何使用后台的JSP程序的数据 
这个比较简单,直接在JavaScript脚本中用<%=strVar1%>就可以把jsp程序中的数据传递给JavaScript脚本使用了。 

参考下面的脚本:

<!-- html页面form表单,放置在html页面中的位置不限 -->    
<form name="insertForm" method="post" action="yourJSP">    
<input type="hidden" name="mc" value="">    
</form>    
  
<script language="JavaScript">    
<!--    
/***************************************************************    
* JavaScript脚本,放置在页面中form以后的任何位置都可以    
* 使用JavaScirpt获取JSP传递到页面中的变量varMC,    
* 然后就可以在JavaScript中使用这个变量的值,通过    
* JavaScript脚本赋值给form中的隐藏域。    
***************************************************************/    
var1 = "<%=varMC%>"; //获取JSP中的变量值    
document.all.mc.value = var1;    
//-->    
</script>  


  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值