是否有可能在Javascript中调用存储在HTTP会话中的Java对象的setter方法?
我设法像这样访问getter:
var result='<%=((MyObject) portletSession.getAttribute("resultObj")).getValue() %>';
但是我需要在Javascript中进行一些修改后回退这个结果。
有可能,还是应该放弃我的想法?
答案 0 :(得分:2)
以你认为的方式是不可能的。
重要的是要意识到,在服务器完成运行发送回内容的Java进程之后,在浏览器中执行Javascript。在Javascript中运行的代码与服务器上的JVM进程之间没有任何关联 - 此代码在两个不同的位置运行。
当服务器生成Javascript以将管道发送给用户时,您可以在Javascript中读取Java会话属性。但是,一旦用户的浏览器正在执行代码,那么在其他人的计算机上运行的代码就无法在服务器上神奇地更改值。
您需要考虑从用户的浏览器(用JavaScript)向服务器发送异步HTTP请求。
答案 1 :(得分:0)
这是不可能的。
Java在浏览器中运行您的服务器和javascript。这些之间没有任何类型的联系。你需要某种服务来调用远程功能
答案 2 :(得分:0)
是否有可能调用javascript中存储在http会话中的java对象的setter方法?
你做不到。 java在服务器端播放,在客户端播放javascript。所以很大否。
但是我需要在javascript中进行一些修改后回退这个结果。
再次否。您需要发出服务器请求才能向java发送一些值。
您似乎需要Asynchronous call。了解Ajax.