我正在Seaside制作一个小型Web应用程序.我有一个登录组件,在用户登录后我想在下一个组件呈现自己时发送cookie.有没有办法获得处理响应的对象,所以我可以添加一些它将输出的标题?
我试图避免使用WASession >> redirectWithCookies,因为重定向只是因为我想设置一个cookie似乎相当笨拙.
是否有另一种方法可以添加一个将在下一个响应中发布的cookie?
目前,在请求处理的操作/回调阶段,没有内置的方法来添加cookie.这很可能是一个缺陷,在本期中有所提及:http://code.google.com/p/seaside/issues/detail?id = 48
目前预计海边2.9将被修复,但我不知道它是否会被反向移植到2.8.
请记住,操作和呈现阶段之间已经(默认情况下)重定向,以防止刷新重新触发回调,因此在宏观方案中,在这种情况下再多一次重定向并不是那么糟糕.
如果您还想进一步深入挖掘,请查看WARenderContinuation >> handleRequest:.这就是触发回调处理并开始重定向或渲染阶段的地方.
编辑添加:
该问题现已得到修复,并且(在最新的开发代码中)您现在可以随时正确地将cookie添加到当前响应中.只需访问当前请求上下文中的响应对象并添加cookie即可.例如,您可能会执行以下操作:
self requestContext response addCookie: aCookie
这不太可能被移植到Seaside 2.8,因为它要求处理响应的方式发生相当大的转变.