Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> View часть в веб приложениях, Как правильно сделать отображение данных 
:(
    Опции темы
Kizja
Дата 27.12.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



Привет, посоветуйте пожалуйста, как правильно сделать в веб приложении часть отображения информации пользователю - view. Использую velocity (с jsp, я так полагаю, при моём подходе код не стал бы меньше) и у меня получается достаточно много файлов с одинаковой структурой, в которой различаются лишь выводимые данные, например:

Код

<title>${rc.getMessage("addCustomer.title")}</title>

<div id="mainInfo">
    <h4>${rc.getMessage("addCustomer.title")}</h4>
    <form id="addCustomerForm" method="post" action="addCustomer.html">
        #springBind("customer.id")
        <input type="hidden" name="id" value="$!{status.value}"/>
        <table align="center">
            <tbody>
                <tr>
                    <td>
                        <table>
                            <tbody>
                                <tr>
                                   <th>${rc.getMessage("customer.firstName")}: </th>
                                   <td>
                                       #springBind("customer.firstName")
                                       <input type="text" name="firstName" value="$!{status.value}"/>
                                       <span class="fieldError">${status.errorMessage}</span>
                                   </td>
                                </tr>
                                <tr>
                                    <th>${rc.getMessage("customer.lastName")}: </th>
                                    <td>
                                        #springBind("customer.lastName")
                                        <input type="text" name="lastName" value="$!{status.value}"/>
                                        <span class="fieldError">${status.errorMessage}</span>
                                    </td>
                                </tr>
                                <tr>
                                    <th>${rc.getMessage("customer.identityCode")}: </th>
                                    <td>
                                        #springBind("customer.identityCode")
                                        <input type="text" name="identityCode" value="$!{status.value}"/>
                                        <span class="fieldError">${status.errorMessage}</span>
                                    </td>
                                </tr>
                                <tr>
                                    <th>${rc.getMessage("customer.birthDate")}: </th>
                                    <td>
                                        #springBind("customer.birthDate")
                                        <input type="text" name="birthDate" value="$!{status.value}"/>
                                        <span class="fieldError">${status.errorMessage}</span>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td>
                        <table>
                            <tbody>
                                <tr>
                                    <th>
                                        <input type="image" alt="${rc.getMessage("button.ok.name")}" src="${rc.getMessage("button.ok.location")}" value="${rc.getMessage("button.ok.name")}"/>
                                        <a title="${rc.getMessage("button.cancel.name")}" href="customers.html">
                                            <img alt="${rc.getMessage("button.cancel.name")}" src="${rc.getMessage("button.cancel.location")}">
                                        </a>
                                    </th>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
    </form>
</div>


Использую Spring MVC и велосити файлы вызываются из спрингового контроллера.

Не понимаю, как сделать компактнее и правильнее, потому что:

1) в такой каше, как это сверху копаться не очень приятно, а это всего лишь небольшая таблица, т.е. если предположить, что хтмл страница будет иметь чуть больше информации, то в таком коде ковыряться вообще будет жопа.

2) Как объединить схожие по структуре файлы, чтобы можно было бы не копировать такой код, а просто разные данные в него подставлять ?

Думал, что может использовать данные в виде хмл и потом с помощью xslt трансформировать их в нужный хтмл - как на ваш взгляд такой вариант ?

Опыта разработки веб приложений маловато, поэтому как-то и не представляю, как это на самом деле делается и как это правильно всё организовать...

Это сообщение отредактировал(а) Kizja - 27.12.2009, 14:54
PM MAIL   Вверх
gelo86
Дата 27.12.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Цитата(Kizja @  27.12.2009,  14:52 Найти цитируемый пост)
Как объединить схожие по структуре файлы, чтобы можно было бы не копировать такой код, а просто разные данные в него подставлять ?

В велосити есть такой макрос, кажетса #parse називается, так с ним ти можеш собирать странички с разных файлов. Поетому сможет подобный loyaut занести в один фаил и исползовать многократно.

PM MAIL   Вверх
goodday1941
Дата 28.12.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



да, нужно разбить страницу на хедер, футер и контентную часть, да и вообще попытаться повыносить повторяющиеся вещи в подобие тегов (незнаю как это будет на велосити, но думаю что-то в этом направлении они должы были придумать)


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.