我有这个代码片段::
<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的值.
如果您打算更改此隐藏组件的值,则可以在该组件中重新设置该值.