Главная » Просмотр файлов » Пояснительная записка к диплому

Пояснительная записка к диплому (1228397), страница 10

Файл №1228397 Пояснительная записка к диплому (Разработка АРМ складского рабочего для ДВЖД - филиала) 10 страницаПояснительная записка к диплому (1228397) страница 102020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

if (object == null) {

return null;

}

if (object instanceof Cities) {

Cities o = (Cities) object;

return getStringKey(o.getIDcity());

} else {

throw new IllegalArgumentException("object " + object + " is of type " + object.getClass().getName() + "; expected type: " + Cities.class.getName());

}

}

В вышеприведённом методе фигурирует один неопределённый до их пор метод – getStringKey, который отвечает за возвращение ключа как строки, этот метод вызывает класс формирователь строк, после чего заносит в него значение ключа полученного в качестве аргумента, и возвращает сроковое представление ключа. Код этого метода описан ниже:

String getStringKey(java.lang.Long value)

{

StringBuilder sb = new StringBuilder();

sb.append(value);

return sb.toString();

}

Вышеописанные методы конвертации не используются в явном виде, а сами вызываются из элементов в которых необходимо выполнить преобразование.

Помимо этого, в контролер представления адресов не вошел также метод для переходов по ключевым ссылкам. Все контроллеры представлений имеют область сессионную область видимости, это используется в ряде механизмов обеспечивающих удобную работу пользователей в системе. Однако если просто перейти по ссылке, то переменные сессии сохранятся и при возвращении к же посещённым представлениям логика, которая не должна быть вызвана будет применена. Поэтому сессию нужно очищать при каждом переходе по ключевой ссылке. Для этого используется команда:

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

После чего можно осуществить возвращение строки, отображающей адрес по которому осуществляется переход. Так, например, будет выглядеть типичный метод перехода по ссылке из контроллера боковой панели:

public String go1()

{

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

return "/SomeFolder/SomeView";

}

Аналогичным образом осуществляется логика выхода из приложения, только в дополнение к очистке сессии, выполняется также очищение переменных, отвечающих за информацию о пользователе, работавшем в системе. Этот метод будет выглядеть следующим образом:

public String exit()

{

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

LoggedUser=null;

loginARMSent=null;

passwordARMSent=null;

return "/Login";

}

Также следует описать метод авторизации пользователя. Этот метод выполняет поиск по базе данных соответствия введённой пользователем информации для входа в систему, и в случае если соответствие не найдено перенаправлял пользователя на текущую страницу с сообщением об ошибке. Код метода имеет следующий вид:

public String validation()

{

List<Workers> o=getFacade().SearchForUser(loginARMSent, passwordARMSent);

if(o.isEmpty())

{

JsfUtil.addErrorMessage("Неправильная комбинация логин/пароль");

loginARMSent="";

return "Login";

}

else

{

LoggedUser=o.get(0);

return "index";

}

}

3.4 Разработка вспомогательных элементов АРМ

В качестве вспомогательных элементов в данном случае выступают представления, позволяющие пользователю осуществлять взаимодействие с созданными ранее контроллерами.

Все представления строятся по одному шаблону, поэтому сначала выполняется создание шаблона. Шаблон состоит из трёх элементов: заголовка, боковой панели, нижней панели. Также в шаблоне присутствует основное содержимое, однако оно не является шаблонным, поэтому не требует создания отдельного элемента. Описанный шаблон представлен на рисунке 6.

Рисунок 6 – Шаблон для построения

представлений

Каждый элемент шаблона описывается в отдельном XHTML файле, содержащем код, который будет вставлен в шаблон. Для заголовка следует определить логотип «РЖД», название системы, а также блок отвечающий за отображение информации о пользователе авторизованном в системе, со ссылкой на выход из него. Стоит отметить что код представлений в JSF пишется с использованием Java Standard Tag Library (JSTL). С использованием этой технологии отпадает необходимость в написании обычного HTML кода, вместо этого указываются теги из JSTL отвечающие за проработку и отображение конкретных тегов HTML со свойствами, определёнными в теге JSTL [23]. В целом синтаксис JSTL схож с HTML и потому будут описываться лишь ключевые моменты присущие JSTL. Такой подход позволяет осуществлять связь контроллеров с представлениями.

Таким образом разработку представлений можно распределить на разработку шаблона и разработку конкретных представлений.

3.4.1 Разработка шаблона представлений

Для указания ссылки на свойство контроллера, следует сослаться на него по имени указанному в объявлении @ManagedBean, следующим образом:

#{managedBean.Property},

где Property – свойство контроллера, к которому выполняется доступ.

Таким образом в заголовке будут теги для вставки изображения, текста, а также блока, состоящего из текстового поля с логином текущего пользователя и ссылкой на выход из системы. Далее для указания фрагмента кода как подлежащего вставке по запросу в файл шаблона, используется следующая запись:

<ui:composition>Элементы подлежащие вставке</ui:composition>

Таким образом код для реализации шаблона заголовка будет выглядеть следующим образом:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:ui="http://java.sun.com/jsf/facelets"

xmlns:h="http://java.sun.com/jsf/html">

<h:body>

<ui:composition>

<h:panelGroup layout="block" styleClass="headerBack" >

<h:form id="form1">

<h:commandLink action="#{loginController.goIndex}">

<h:graphicImage name="Images/7.jpg" styleClass="headPic" />

</h:commandLink>

</h:form>

<h:panelGroup layout="block" styleClass="titleDiv">

<h1><h:outputText value="Автоматизированное рабочее место складского рабочего" /></h1>

</h:panelGroup>

<h:panelGroup layout="block" styleClass="infoDiv" rendered="#{loginController.loginARMSent!=null and !loginController.loginARMSent.isEmpty()}">

<h:outputText value="#{loginController.loginARMSent}" />

<br/>

<h:form id="form2">

<h:commandLink action="#{loginController.exit}">

Выход

</h:commandLink>

</h:form>

</h:panelGroup>

</h:panelGroup>

</ui:composition>

</h:body>

</html>

В теге ссылки в вышеописанном коде действию при нажатии ссылки соответствует метод контроллера боковой панели, а значению – текст для отображения. Важно заметить, что метод определяемый в соответствие ссылке должен возвращать строку, представляющую собой адрес представления, на которое следует осуществить переход или пустое значение. Также стоит упомянуть что префикс «h», в данном коде означает что данный элемент будет сгенерирован сервером как HTML элемент с указанными в нём атрибутами. StyleClass, в параметрах группы блоков, определяет ссылку на класс CSS используемый для данной группы блоков, а layout, обозначает способ генерации блоков. Сервер может генерировать блоки <div>, при указании значения “block”, либо <span>, которые генерируются по умолчанию. В данном коде также заслуживает упоминания параметр rendered в теге, обозначающем блок с информацией для пользователя. Этот параметр отвечает за генерацию тега HTML в случае если его значение истинно, в случае если оно ложно, то элемент сгенерирован не будет. В данном случае это используется для скрытия излишнего элемента на странице авторизации, до того, как пользователь ввёл свои учётные данные.

Далее следует определить боковую панель. Она содержит в себе ссылки для перехода по основным журналам необходимых для работы складским рабочим. Эти ссылки как упоминалось ранее реализуются в методах контроллера боковой панели и к этим методам осуществляется обращение при нажатии ссылки. Таким образом код для шаблона боковой панели можно представить в следующем виде:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:ui="http://java.sun.com/jsf/facelets"

xmlns:h="http://java.sun.com/jsf/html">

<h:body>

<ui:composition>

<h:panelGroup layout="block" styleClass="SidePanel">

<h:form>

<h:commandLink action="#{sideBarController.go1}" value="Журнал операций"/>

<br/>

<h:commandLink action="#{sideBarController.go2}" value="Журнал посещений"/>

<br/>

<h:commandLink action="#{sideBarController.go3}" value="Журнал запросов"/>

<br/>

<h:commandLink action="#{sideBarController.go4}" value="Журнал информации о складах"/>

<br/>

<h:commandLink action="#{sideBarController.go5}" value="Информация о товарах"/>

<br/>

<h:commandLink action="#{sideBarController.go6}" value="Журнал товаров на складах"/>

<br/>

<h:commandLink action="#{sideBarController.go7}" value="Поиск сотрудников"/>

</h:form>

</h:panelGroup>

</ui:composition>

</h:body>

</html>

Далее определяется подвал станицы. Он содержит в себе информацию о годе разработки системы, а также о целевом предприятии.

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:ui="http://java.sun.com/jsf/facelets"

xmlns:h="http://java.sun.com/jsf/html">

<h:body>

<ui:composition>

<h:panelGroup layout="block" styleClass="footer">

<h:outputText value="ДВЖД - 2015" />

</h:panelGroup>

</ui:composition>

</h:body>

</html>

После задания блоков осуществляется их связь в основном шаблоне. Для интеграции уже написанного шаблона в другом используется команда:

<ui:insert name="header">

<ui:include src="/ templateElementsPath/template.xhtml" />

</ui:insert>

Имя области вставки используется для возможности дальнейшего переопределения области, в представлении в котором она будет отличаться от определённой в шаблоне. Для этого используется команда:

<ui:define name="title">

Новое содержимое

</ui:define>

Таким образом код шаблона будет иметь следующий вид:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"

xmlns:ui="http://java.sun.com/jsf/facelets"

xmlns:h="http://java.sun.com/jsf/html"

xmlns:f="http://java.sun.com/jsf/core">

<h:head>

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>

<title>

<ui:insert name="title">Главная страница АРМ</ui:insert>

</title>

<h:outputStylesheet library="css" name="templates.css"/>

</h:head>

<h:body>

<h:panelGroup layout="block" styleClass="page_content">

<ui:insert name="header">

<ui:include src="/templateElementsPath/header.xhtml" />

</ui:insert>

<ui:insert name="side_panel">

<ui:include src="/templateElementsPath/side_panel.xhtml" />

</ui:insert>

<h:panelGroup layout="block" styleClass="main_content">

<ui:insert name="main_content">

Default Content

Характеристики

Тип файла
Документ
Размер
744,54 Kb
Высшее учебное заведение

Список файлов ВКР

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6552
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее