2015-06-10 4 views
0

Я калитка 1.4 переход на 6 через 1,5. Я сталкиваюсь с проблемой, которую я не могу исправить. В калитку 1.4 я использовал, чтобы иметь (примечание: Да, у меня есть detach)Как SetHeader в ResourceStreamRequestHandler # Configure (..) (миграция выпуск)

public class TempFileResourceRequestTarget extends ResourceStreamRequestTarget implements Serializable { 
    @Override 
    protected void configure(final RequestCycle requestCycle, final Response response, 
      final IResourceStream resourceStream) { 
     super.configure(requestCycle, response, resourceStream); 
     ((WebResponse)response).getHttpServletResponse().setHeader("Cache-Control",""); 
     ((WebResponse)response).getHttpServletResponse().setHeader("Pragma",""); 
} 

В калитку 1,5/6 Я изменил его в этом:

public class TempFileResourceRequestTarget extends ResourceStreamRequestHandler implements Serializable { 
    @Override 
    protected void configure(ResourceStreamResource resource) { 
     super.configure(resource); 
     ((HttpServletResponse)resource).setHeader("Cache-Control",""); 
     ((HttpServletResponse)resource).setHeader("Pragma",""); 
    } 
} 

Я был в отчаянии и пытался найти все, что включает setHeader() - я верю, что нашел его в руководстве по миграции или что-то подобное. Во всяком случае, это не сработает. Как его установить? в renderHead? Нет подсказки. Заранее спасибо.

ответ

1

ResourceStreamResource не реализует HttpServletResponse. Чтобы отключить кеширование, вы можете использовать ResourceStreamResource#setCacheDuration(Duration.NONE).

Он будет делать следующее для вас:

public void disableCaching() { 
    this.setDateHeader("Date", Time.now()); 
    this.setDateHeader("Expires", Time.START_OF_UNIX_TIME); 
    this.setHeader("Pragma", "no-cache"); 
    this.setHeader("Cache-Control", "no-cache, no-store"); 
} 

Это то, что вы после этого?

+0

это действительно так. Спасибо! – ojciecmatki