Трудность с прокруткой состоит в том, что Вы, возможно, не только должны прокрутить страницу для показа отделения, но Вы, возможно, должны прокрутить внутренние отделения с возможностью прокрутки на любом количестве уровней также.
scrollTop свойство является доступным на любом элементе DOM, включая тело документа. Путем установки его можно управлять, как далеко вниз что-то прокручивается. Можно также использовать clientHeight и scrollHeight свойства для наблюдения, сколько прокрутки необходимо (прокрутка возможна, когда clientHeight (область просмотра) является меньше, чем scrollHeight (высота содержания).
можно также использовать offsetTop свойство для выяснения, где в контейнере элемент расположен.
Для встраивания действительно общей цели "прокручивают в представление" стандартную программу с нуля, необходимо было бы запустить в узле, который Вы хотите представить, удостоверьтесь, что это находится в видимой части, он - родитель, затем повторите то же для родителя, и т.д., полностью пока Вы не достигаете вершины.
Один шаг этого выглядел бы примерно так (непротестированный код, не проверяя пограничные случаи):
function scrollIntoView(node) {
var parent = node.parent;
var parentCHeight = parent.clientHeight;
var parentSHeight = parent.scrollHeight;
if (parentSHeight > parentCHeight) {
var nodeHeight = node.clientHeight;
var nodeOffset = node.offsetTop;
var scrollOffset = nodeOffset + (nodeHeight / 2) - (parentCHeight / 2);
parent.scrollTop = scrollOffset;
}
if (parent.parent) {
scrollIntoView(parent);
}
}
@POST
@Consumes("application/json")
public void createBook(Book book)
{
.....
.....
}
Конечно, вам нужно иметь getter / setter для каждого свойства в Book.
Кроме того, причина, по которой рекомендуется использовать класс-оболочку (обычно это карта), состоит в том, чтобы избежать создания нескольких DTO для каждого типа данных, которые вы хотите отправить. Проще всего сериализовать / десериализовать, используя карту, и в рамках бизнес-логики преобразовать ее в соответствующий POJO для внутренней обработки, особенно если вы используете этот POJO для реляционного отображения объектов.