如何在Scriptlet中传递Javascript变量



我迫切需要一些关于如何在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)有两个参数。我需要在Scripplet标签上使用这些参数来调用createJsonObject(服务器端方法)。

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

javascript variable available in scriptlet

javascript内部,您不能调用jsp,斯克里普斯中的代码在服务器端上执行

您需要向服务器(HTMLforms/AJAX)请求新内容,或者在页面加载时在客户端维护Json对象并稍后使用它。

如果您想解析JSON字符串,也可以在客户端进行解析。。可以使用jQuery.parseJSON(http://api.jquery.com/jQuery.parseJSON/)或eval(但不建议使用eval)

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

最新更新