0

我迫切需要一些关于如何在 Scriptlet 中使用 javascript 变量的建议。我知道 javascript 在客户端运行,scriptlet 代码在服务器上运行。但我认为有一些方法可以使 javascript 变量在 scriptlet 中可用。下面是我的代码。

Javascript 乐趣

function showDirStructure(repoId, repoName){


        <% 
        String sr = repoId;
        if(sr!=null){
        JSONObject obj = getDirStructure.createJsonObject(request.getParameter("repoId")); 

         %>

上面的 javascript 函数 (showDirStructure) 有两个参数。我需要在 Scriplet 标签上使用这些参数来调用 createJsonObject(服务器端方法)。

4

4 回答 4

1

Scriptlet 在有关网页的任何数据从服务器发送到客户端之前执行。无论您想做什么,都需要将回发发送到服务器(使用表单或 ajax 调用)。我通常使用 jQuery,所以我的答案会使用它,但可以随意修改它以使用本机 JS 代码。首先,我将在服务器上创建一个名为 createJsonObject 的页面,使用 $.ajax(类型:“POST”)从客户端调用它,并将我的两个参数作为对象 {repoId:repoId,repoName:repoName} 传递。在服务器上,我会将我的 JSP 放在该页面上,在页面加载时读取参数,执行函数并将带有数据的对象返回给客户端。在 .done() 中,我会对这些数据做一些事情(以表格形式显示它们,将它们保存在 JS 变量中......)。希望这可以帮助。

于 2013-08-02T07:54:25.107 回答
0
javascript variable available in scriptlet

不。

在里面javascript,你不能调用jsp,脚本中的代码在服务器端执行

您需要向服务器(HTML 表单/AJAX)发出请求以获取新内容,或者在页面加载时在客户端本身维护 Json 对象并稍后使用它。

于 2013-08-02T07:42:46.920 回答
0

如果您的意图是解析 JSON 字符串,您也可以在客户端执行此操作。您可以使用 jQuery.parseJSON ( http://api.jquery.com/jQuery.parseJSON/ ) 或 eval (eval 不是虽然推荐)

于 2013-08-02T07:53:39.927 回答
0

您可以在页面第一次加载时向同一资源(JSP 页面)发送请求,因此 scriptlet 可以使用 javascript 变量。

于 2013-08-02T09:37:55.887 回答