2012-04-24 51 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');