Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以访问客户端和服务器端的RequestScope JavaBean对象吗?_Javascript_Jquery_Jsp_Javabeans_Client Side - Fatal编程技术网

Javascript 我可以访问客户端和服务器端的RequestScope JavaBean对象吗?

Javascript 我可以访问客户端和服务器端的RequestScope JavaBean对象吗?,javascript,jquery,jsp,javabeans,client-side,Javascript,Jquery,Jsp,Javabeans,Client Side,简短版本: 在java web应用程序中,我可以将javabean对象设置为RequestScope参数,并在构建网站时通过JSTL/EL访问这些对象中的详细字段,甚至是分层字段 我是否可以以任何方式访问这些JavaBean的全部内容,例如,在我的网页中单击某些元素时启动的javascript函数 长版本: 我正在制作一个java web应用程序,我正在尝试学习基础知识,因此我没有使用任何像Spring或Struts这样的框架,而是通过front controller模式构建应用程序 我有一个页

简短版本:

在java web应用程序中,我可以将javabean对象设置为RequestScope参数,并在构建网站时通过JSTL/EL访问这些对象中的详细字段,甚至是分层字段

我是否可以以任何方式访问这些JavaBean的全部内容,例如,在我的网页中单击某些元素时启动的javascript函数

长版本:

我正在制作一个java web应用程序,我正在尝试学习基础知识,因此我没有使用任何像Spring或Struts这样的框架,而是通过front controller模式构建应用程序

我有一个页面,它应该能够在我的数据库中创建新的、接收、编辑和/或最终更新数据。数据库有外键,我在编辑器中的选择应该取决于数据库中其他链接表的元素数

我希望我的编辑能够:

根据静态数据库的辅助表创建编辑器菜单,直到离开站点 从数据库元素加载数据 在html元素中编辑数据 如果数据仍然可用,撤消基本上重复步骤2的更改 保存数据,并重置编辑器。 第四点是这里关注的焦点。我希望能够在不重新加载整个页面的情况下执行步骤4。如果我能够做到这一点,我想第2步也应该在客户端执行,因为它只做了第一次同样的事情。感觉像这样的设置将允许我很好地分离创建表单本身服务器端,让步骤2-4发生在客户端,直到步骤5再次需要服务器端操作

我不知道如何实现这个目标,或者这是否是一个好主意。这只是一个问题,当从数据库加载数据时,我想在客户端存储该数据。现在,我正在jsp/html/jstl中构建表单,并通过Servlet控制器中的HttpServletRequest对象使用requestScoped java对象来实现。我一直在尝试在javascript函数中使用这些对象,但效果有限。我已经能够提取所有数据,即使是层次结构对象的字段,但集合中的字段除外。不幸的是,这些对我的编辑器页面是必不可少的

为此,我一直在研究JSON,但似乎我需要对java代码进行重大调整以实现这一点。值得吗


最后,重复这个问题:我如何访问RequestScope JavaBean objectdata以使其在客户端可用,即Javascript?

您使用的是mvc体系结构吗?是的。更具体地说,我的体系结构基于本文的图5。更准确地说,它直接实现为基于Requestaction的MVC,正如的答案中所述,不可能在java脚本中使用Jstl/EL,但您可以尝试使用scriplets从java bean收集数据,并调用相应的处理程序来更新页面。我刚刚再次检查了您的问题,发现您希望在不重新加载页面的情况下完成此操作。为了避免重新加载页面,可以尝试Ajax。希望它能帮助你;您不能在客户端访问内存中的bean或任何其他服务器端对象。但是,如果bean在会话范围内,您可以向servlet发送Ajax请求,将bean值返回到javascript。但是如果bean在请求范围内,则不能。如果它的请求范围和您希望Javascript具有访问权限,则必须将其打印到页面中。