Alfresco - HTTP会话
问题描述:
尝试通过QuickStart上的Javascript Webscript访问HTTP会话。Alfresco - 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归档并将其复制到共享(或基于冲浪的应用)。
-
注册这个类弹簧冲浪脚本服务-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');