我迫切需要一些关于javascript变量如何在Scriptlet中可用的建议。我知道javascript在客户端运行,其中scriptlet代码在服务器上运行。但我认为有一些方法可以在scriptlet中使用javascript变量。下面是我的代码。
Javascript有趣
function showDirStructure(repoId, repoName){
<%
String sr = repoId;
if(sr!=null){
JSONObject obj = getDirStructure.createJsonObject(request.getParameter("repoId"));
%>
上面的javascript函数(showDirStructure)有两个参数。我需要在Scriplet标签上使用这些参数来调用createJsonObject(服务器端方法)。
答案 0 :(得分:1)
在将有关网页的任何数据从服务器发送到客户端之前执行Scriptlet。无论你想做什么,你都需要将回发发送到服务器(带有表单或ajax调用)。我通常使用jQuery,所以我的答案将使用它,但随意修改它以使用本机JS代码。首先,我将在服务器上创建一个名为createJsonObject的页面,使用$ .ajax(类型:“POST”)从客户端调用它,并将我的两个参数作为对象{repoId:repoId,repoName:repoName}传递。在服务器上,我会将JSP放在该页面上,在页面加载时读取参数,执行函数并将数据返回给客户端。在.done()中我会对这些数据做一些事情(在表单中显示它们,将它们保存在JS变量中......)。希望这会有所帮助。
答案 1 :(得分:0)
javascript variable available in scriptlet
否强>
在javascript
内,您无法调用jsp
,在服务器端执行scriplets中的代码
您需要向服务器(HTML表单/ AJAX)请求新内容,或者在页面加载时在客户端本身维护Json对象并稍后使用它。
答案 2 :(得分:0)
如果您打算解析JSON字符串,您也可以在客户端执行此操作..您可以使用jQuery.parseJSON(http://api.jquery.com/jQuery.parseJSON/)或eval(不建议使用eval)
答案 3 :(得分:0)
您可以在第一次加载页面时向同一资源(JSP页面)发送请求,因此scriptlet可以使用javascript变量。