QuickStart で Javascript Webscripts を介して HTTP セッションにアクセスしようとしています。
各 http セッションのプライベート オブジェクトに要素を保存する方法が見つかりません。
誰かが解決策を知っていますか?
QuickStart で Javascript Webscripts を介して HTTP セッションにアクセスしようとしています。
各 http セッションのプライベート オブジェクトに要素を保存する方法が見つかりません。
誰かが解決策を知っていますか?
カスタム JavaScript ルート オブジェクトを作成します。これは、次のようなクラスを実装する Java クラスorg.springframework.extensions.webscripts.processor.BaseProcessorExtension
です。
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');