将变量从Scriptlet传递到Javascript.

我有这个代码片段::

<script type="text/javascript">
function gotoa(){
    <%!
    public void a(){
     String temp1;
    PopulateTextbox obj = new PopulateTextbox();
    temp1 = obj.method();
    request.setAttribute("variable", temp1);
    }
    %>


var myVar = <%=request.getAttribute("variable")%>
}
</script>

我想做的就是在我的JavaScript函数gotoa()中获取变量temp1的值.在此特定代码中,我收到一个错误无效请求

request.setAttribute("variable", temp1);

我的主要目的是在某个按钮单击事件上调用函数a(),以便我的脚本让代码再次运行,并在变量temp1中传递新值.然后将其传递给gotoa()作为我的数据网格的源(不在此代码中).基本上我想在单击某些按钮时刷新网格.我做对了吗?请帮忙.谢谢.

解决方法:

如果您需要在gotoa()中使用变量temp1的值,请执行以下操作:

<%  String temp1; // Store value in temp1 variable for later use
    PopulateTextbox obj = new PopulateTextbox(); 
    temp1 = obj.method();
%>
<script>
function gotoa(){ 

    var temp1Val = document.getElementById("hiddenTemp1").value;
    // put your logic here
    document.getElementById("hiddenTemp1").value = tempVal1;
}
</script>
<body>
<form action="otherPage.jsp">
    <!-- use the value of temp1 variable -->
    <input type="hidden" name="hiddenTemp1" id="hiddenTemp1" value="<%=temp1%>">
    <input type="button" onclick="gotoa()" value="GotoA">
    <input type="submit" value="Submit New Value">
</form>
</body>

首先,您将值分配给变量temp1.然后,通过使用scriptlet使用值为value = temp1的Hidden Input组件来渲染JSP.如果要验证,只需查看“生成的HTML的源”,您应该看到与变量相等的被​​隐藏的input的值.

提交表单后,Request中将提供hiddenTemp1的值.
如果您打算更改此隐藏组件的值,则可以在该组件中重新设置该值.

上一篇:完美实现保存和加载easyui datagrid自定义调整列宽位置隐藏属性功能


下一篇:C#-获取数据网格的scrollviewer