2016-09-03 2 views
0

У меня есть «хранение» портлет: enter image description hereService Builder LifeRay Отношение

Я могу нажать кнопку «Добавить книгу»:

enter image description here

Но мне нужно, чтобы иметь возможность добавить имя автора в мою книгу , Поэтому я создал новый проект, новый Service Builder с новым «автором» объекта, и теперь я могу добавить автора тоже. Но как я могу сделать выпадающее меню с существующими авторами, когда я нажимаю «добавить книгу»? Как связать это поле с новой таблицей - «автор»?

ответ

4

Вам не нужно создавать другой проект для автора, в том же сервис-строителе, что и объект книги, добавляющий объект-автор и добавляющий ссылку на другую таблицу, в которой будет храниться первичный ключ книги и автора. service.xml может быть:

<service-builder package-path="com.myproject.db"> 
<author>SO</author> 
<namespace>myp</namespace> 
<entity name="Book" local-service="true" remote-service="true" cache-enabled="false"> 
<column name="bookId" type="long" primary="true" /> 
<column name="name" type="String" /> 
<column name="description" type="String" /> 
<column name="price" type="long" /> 
<column name="author" type="Collection" entity="Author" mapping-table="Author_Books"/> 
</entity> 
<entity name="Author" local-service="true" remote-service="true" cache-enabled="false"> 
<column name="authorId" type="long" primary="true" /> 
<column name="authorName" type="String" /> 
<column name="books" type="Collection" entity="Book" mapping-table="Author_Books" /> 
</entity> 
</service-builder> 

И при развертывании этого портлета создаст еще одну таблицу myp_Author_Books, которая будет иметь составной ключ из authorId и bookId. чем в методе визуализации книжной форме добавить

List<Author> authorList=AuthorLocalServiceUtil.getAuthor(0, AuthorLocalServiceUtil.getAuthorCount()); renderRequest.addAttribute("listAuthor",authorList)

и использовать этот атрибут в JSP с c:forEach и aui:select создать выпадающий список, чего-л, как:

<aui:select name="author" label="Author Name"> 
    <c:forEach var="currAuthor" items="${listAuthor}"> 
     <aui:option value="${currAuthor.authorId}" label=" ${student.authorName}"></aui:option> 
    </c:forEach> 
</aui:select> 
+0

Спасибо за ваш ответ, я проголосуйте! Но у меня все еще есть один вопрос: что мне следует вставлять вместо '' для создания выпадающего списка? Я новичок, поэтому я не могу его получить – German

+1

Только что отредактировал мой ответ, чтобы дать ключ к jsp part, надеюсь, что это поможет! – KLajdPaja

+0

Yeeeeeeeeah, это помогает !!! Спасибо, мужик! – German

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