Хранение переменных сеанса в лифте Scala

Все сказанный leppie - плюс:

int index = mylist.FindIndex(p => p.id == 1);
if(index<0) {
    mylist.Add(car3);
} else {
    mylist[index] = car3;
}

Это просто использует существующий FindIndex, чтобы определить местоположение автомобиля с идентификатором 1, затем заменить или добавить его. Никакой LINQ; никакой SQL - просто лямбда и List<T>.

8
задан 10 October 2009 в 06:17
поделиться

2 ответа

Чтобы получить значение из SessionVar или RequestVar , вызовите метод , то есть sessionUserType .is

Кстати, вы читали « Управляющее состояние »?

Дополнительное примечание

Я считаю, что RequestVar лучше подходит для вашего случая. Я не уверен, что смогу правильно уловить ваш код без контекста, но его можно было бы переписать как минимум так:

case class LoginType
case object StudentLogin extends LoginType
case object ProviderLogin extends LoginType

object loginType extends RequestVar[Box[LoginType]](Empty)
// RequestVar is a storage with request-level scope

...
"provider" -> SHtml.link("/providerlogin",() => loginType(Full(ProviderLogin)), Text("Provider")),
// `SHtml.link` works in this way. Your closure will be called after a user
// transition, that is when /providerlogin is loading.
...

val studentSessionType = If(() => { loginType.is map {_ == StudentLogin} openOr false },
                "not a student session")
// As a result, this test will be true if our RequestVar holds StudentLogin,
// but it will be so for one page only (/studentlogin I guess). If you want
// scope to be session-wide, use SessionVar
10
ответ дан 5 December 2019 в 17:38
поделиться

Я думаю, что отключение заключается в том, что вы предполагаете, что Атрибут сеанса будет соответствовать вашей SessionVar , а это не так. Lift - это очень безопасный фреймворк, и одна из его особенностей состоит в том, что Lift создает непрозрачные идентификаторы GUID для ссылки на компоненты на на стороне сервера.

Если вы хотите, чтобы getSessionAttribute возвращал что-то, подумайте, как вы можете вызвать setSessionAttribute .

0
ответ дан 5 December 2019 в 17:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: