尝试通过 QuickStart 上的 Javascript Webscripts 访问 HTTP 会话。
对于每个 http 会话,我无法找到将元素保存到某个私有对象的任何帮助。
有谁知道任何解决方案?
尝试通过 QuickStart 上的 Javascript Webscripts 访问 HTTP 会话。
对于每个 http 会话,我无法找到将元素保存到某个私有对象的任何帮助。
有谁知道任何解决方案?
创建一个自定义 JavaScript 根对象 - 它是一个实现org.springframework.extensions.webscripts.processor.BaseProcessorExtension
类的 Java 类,例如:
package pl.test;
import javax.servlet.http.HttpSession;
import org.springframework.extensions.surf.ServletUtil;
import org.springframework.extensions.webscripts.processor.BaseProcessorExtension;
public class HttpSessionHelper extends BaseProcessorExtension {
public void setInSession(String paramName, String paramValue) {
HttpSession session = ServletUtil.getSession();
session.setAttribute(paramName, paramValue);
}
public String getFromSession(String paramName) {
HttpSession session = ServletUtil.getSession();
Object paramValue = session.getAttribute(paramName);
if (paramValue != null) {
return paramValue.toString();
} else {
return null;
}
}
}
编译并打包这个类到 jar 存档并将其复制到 Share(或基于 Surf 的应用程序)。
在 spring-surf-script-services-context.xml 中注册该类,例如:
<bean id="exampleExtension" parent="baseScriptExtension"
class="pl.test.HttpSessionHelper">
<property name="extensionName">
<value>httpSessionHelper</value>
</property>
</bean>
在 webscript 中使用新的自定义根对象,例如:
var paramName = httpSessionHelper.getFromSession('paramName');
httpSessionHelper.setInSession('paramName','paramValue');