2012-04-24 69 views
1

尝试通过QuickStart上的Javascript Webscript访问HTTP会话。Alfresco - HTTP会话

我无法找到任何帮助将元素保存到每个http会话的一些私人对象。

有谁知道任何解决方案?

回答

2
  1. 创建自定义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; 
        } 
    } 
    } 
    
  2. 编译和打包这个类JAR归档并将其复制到共享(或基于冲浪的应用)。

  3. 注册这个类弹簧冲浪脚本服务-context.xml中,例如:

    <bean id="exampleExtension" parent="baseScriptExtension" 
         class="pl.test.HttpSessionHelper"> 
        <property name="extensionName"> 
        <value>httpSessionHelper</value> 
        </property> 
    </bean> 
    
  4. 使用新的自定义根对象在webscript,例如:

    var paramName = httpSessionHelper.getFromSession('paramName'); 
    httpSessionHelper.setInSession('paramName','paramValue');