Как я могу переопределить стратегию рендеринга для определенной страницы в калитке

У меня есть приложение, которое должно принимать POST-запрос от внешнего сервера для подтверждения оплаты. Я не хочу нарушать стандартную стратегию рендеринга калитки (REDIRECT_TO_BUFFER), которая служит для предоставления пользователям более приятного опыта, чем ONE_PASS_RENDER, однако внешняя служба не довольна 302 и продолжает повторять попытки, пока не сдастся.

Есть ли какой-нибудь разумный способ указать калитке использовать ONE_PASS_RENDER только для конкретной страницы, которая обрабатывает этот запрос?


person Clive Evans    schedule 10.01.2012    source источник


Ответы (1)


Попробуйте использовать Resource вместо Page для обработки этого запроса. Таким образом, вы можете вернуть любой ответ (как заголовки HTTP, так и полезные данные), чтобы внешняя служба оставалась довольной.

Однако это API более низкого уровня. Если вам нужно ответить обработанной страницей, вам может потребоваться отрендерить ее самостоятельно (с большим количеством println() вызовов) или взломать какой-нибудь способ Wicket, чтобы это сделать.

Но поскольку это ответ на внешнюю службу, я предполагаю, что он будет ожидать какой-то простой текстовый ответ, ответ XML или JSON, который достаточно легко сделать вручную.

person tetsuo    schedule 17.01.2012
comment
Интересно, я мог бы попробовать сегодня вечером. Мы получили ответ от списка рассылки Wicket, который работает, но не интуитивно понятен. По сути, мы создали целевую страницу, которая при создании выдает исключение RestartResponseException, созданное с помощью поставщика страницы с фактической требуемой страницей и RedirectPolicy # NEVER_REDIRECT. - person Clive Evans; 17.01.2012