Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > View часть в веб приложениях


Автор: Kizja 27.12.2009, 14:52
Привет, посоветуйте пожалуйста, как правильно сделать в веб приложении часть отображения информации пользователю - 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 трансформировать их в нужный хтмл - как на ваш взгляд такой вариант ?

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

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

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

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)