2015-02-10 2 views
0

Мне нужно использовать @SessionScope, чтобы сделать список оставшимся на странице после обновления, но когда я его использую, Stripes: ошибка больше не дублируется. Полосы: фактически выполняется ошибка (как я вижу, ничего не произойдет), но она больше не отображает сообщение об ошибке на странице. Я уверен, что есть что-то с @SessionScope, потому что, когда я запускаю код без него, все ошибки отображаются на странице. Любая идея о том, как это исправить?Полосы @SessionScope скрывает Стриптиз: ошибки

Примечание: Я также попытался использовать @Wizard (startEvents = "event"), и он позволяет показывать ошибки, но ничего не делает с сохранением списка на странице!

ява

@SessionScope 
@UrlBinding("/Student/import.action") 
public class ImportAction implements ActionBean { 
    private String userCheckBox; 
    public Resolution importStudents() throws IOException { 
     if (userCheckBox == null) { 
         this.getContext().getValidationErrors().add("userCheckBox",new SimpleError(error)); 
      } 
    return new RedirectResolution("import.action"); 
} 
public String getUserCheckBox() { 
    return userCheckBox; 
} 
public void setUserCheckBox(String userCheckBox) { 
    this.userCheckBox = userCheckBox; 
} 
} 

JSP

<stripes:checkbox name="userCheckBox"/> 
<stripes:errors field="userCheckBox"/> 
<stripes:submit name="importStudents" value="Import"/> 
+0

Разве вы не используете @Validate в userCheckBox, чтобы вам не пришлось выполнять ручную проверку ошибок? – lumpynose

ответ

0

Я не знаю, если это правильный способ сделать это, но вместо того, чтобы использовать @SessionScope как насчет хранения списка в сессии непосредственно через ваш подклассовый ActionBeanContext? Например, у моего есть

public class IlmpActionBeanContext extends ActionBeanContext { 
private static final String REQUEST_TOKEN = "request_token"; 

public Token getRequestToken() { 
    return (Token) this.getRequest().getSession() 
     .getAttribute(IlmpActionBeanContext.REQUEST_TOKEN); 
} 

public void setRequestToken(final Token requestToken) { 
    this.getRequest() 
    .getSession() 
    .setAttribute(IlmpActionBeanContext.REQUEST_TOKEN, requestToken); 
}