2014-09-04 4 views
2

У меня есть страница XPages, содержащая компонент службы REST. Я использую «documentJsonService».XPages REST и формат даты

Удивительный компонент и все остальное работает нормально, но у меня проблемы с форматами дат и не знаю, что делать.

Документ Notes, в котором я читаю данные, содержит элемент DateTime, имеющий правильную дату, например. 01.09.2014 (финский формат: д.м.г.гггг). Компонент REST возвращает дату в «2014-09-01» (строка). Это отлично. Однако, когда я делаю HTTP-сообщение POST на сервере с одинаковыми точными данными, Domino меняет дату строки «2014-09-01» на 09.01.2014.

Больше не знаю, что делать. Почему Domino дает дату в формате A, и когда я возвращаю ее в том же формате, происходит что-то странное.

То же самое происходит в средах Linux и Windows. Версия Domino - 9.0.1.

Спасибо. Я более или менее проиграл с этой «особенностью» :)

ответ

1

Я бы сказал: сломанный, как задумано. Насколько мне известно, возвращаемый формат JSON всегда имеет форму yyyy-mm-dd, а формат, ожидаемый при публикации, зависит от языкового стандарта браузера. Вам нужно будет «взломать его».

Я не большой поклонник готовых испеченных услуг в формате JSON, я предпочел бы ролл моей, где я могу быть очень конкретным с форматами и (что более важно) добавить проверку, прежде чем записать данные обратно. Вы можете найти образец on my blog

В основном вы реализуете боб, как это:

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import com.ibm.domino.services.ServiceException; 
import com.ibm.domino.services.rest.RestServiceEngine; 
import com.ibm.xsp.extlib.component.rest.CustomService; 
import com.ibm.xsp.extlib.component.rest.CustomServiceBean; 

public class CustomSearchHelper extends CustomServiceBean { 

    @Override 
    public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException { 

     HttpServletRequest request = engine.getHttpRequest(); 
     HttpServletResponse response = engine.getHttpResponse(); 

     response.setHeader("Content-Type", "application/json; charset=UTF-8"); 

     // Your code goes here! 

    } 
} 

вам нужно проверить в запросе какой метод был использован GET или POST, но потом легко продолжить. Пока вы на нем: OpenNTF Domino API делает вашу жизнь намного проще.

Смежные вопросы