С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108

Создание страниц в Spring MVC

12.07.2016, 15:03. Показов 1617. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Делаю небольшую админку, где можно будет создавать страницы. Имеются поля: заголовок, url, шаблон. После нажатия на кнопку submit данные добавляются в БД. Вопрос: как сделать так, чтобы созданная страница стала доступна по указанному адресу url. Работаю со Spring MVC, да и в общем с Java очень мало, поэтому сильно не пинайте за возможно глупый вопрос
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.07.2016, 15:03
Ответы с готовыми решениями:

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

задания по spring core и spring mvc для новичков
Какие задания можно предложить новичкам для выполнения после знакомства их с spring core и mvc ?

Перевод проекта из Spring Maven в обычный Spring MVC
Здравствуйте. Подскажите, реально ли взять готовый проект, например -...

11
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
12.07.2016, 19:13
Например как-то так
Java
1
2
3
4
@RequestMapping("/custom/{pageName}")
public String getCustomPage(@PathVariable String pageName) {
   return pageName;
}
1
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
14.07.2016, 12:38
используйте не String, а
Java
1
2
3
4
5
 public ModelAndView ....(@RequestParam(...) или @ModelAttribute(...)) {
 
 ModelAndView modelAndView = new ModelAndView();
            modelAndView.setViewName("путь к вашей странице");
            return modelAndView;
0
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
14.07.2016, 14:23  [ТС]
Все бы хорошо, но я все равно немного не понимаю как это сделать. Я добавляю запись в БД values(id, url, title, published), но физически у меня не создается страница (это логично), я не думаю, что если у меня будет 300 записей, то придется физически хранить столько страниц. Подскажите как это реализовать все. Я не прошу за меня всю задачу решать, просто нужен пинок в правильном направлении
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
14.07.2016, 15:43
попробуй почитать про какой-нибудь freemarker или что-то похожее
1
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
14.07.2016, 19:08
BboyBlackjack, пинок в правильном направлении - посыл почитать книгу, например Spring in Action (главы про MVC и Rest Controllerы хотя бы), решать за тебя задачу - дальнейшие объяснения.
Конечно, это мое мнение.
1
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
15.07.2016, 10:37
А при чем страница к БД?

Создаете Model
Потом, если нужно DTO,
Потом Репозиторий
Потом Controller
и в нем примерно так сливаете:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Controller
public class CarsController {
 
    @Autowired
    private CarsService carsService;
 
    @RequestMapping(value = "/сars", method = {RequestMethod.GET, RequestMethod.POST})
    public ModelAndView viewCarsForSale() {
        List<CarsDTO> list = carsService.viewAllModelCars(); (тут все равно что carsRepository.findAllCars(); вот только у меня в Сервисе еще перевод Модели в ДТО)
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("namesCars", list);
        modelAndView.setViewName("cars");
        return modelAndView;
 
    }
 
}
Html выглядит примерно так:

Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  <tr th:each="cars : ${namesCars}">
 
        <td align="center">
            <input type="checkbox" th:attr="id=${cars.idCar}" /></td>
        <td>
        <img th:attr="src=${cars.photo}" width="400" height="280"/>
    </td>
        <td width="100" th:text="${cars.name}">Name</td>
        <td width="100" th:text="${cars.descriptions}">Describe</td>
        <td align="center"  width="100" th:text="${cars.quantity}">Quantity
 
        </td>
 
     
 
         <form action="cars"  method="post" >
        <td align="center" width="80">
 
            <input type="hidden" id="nameCarsHidden" name="nameCarsHidden" th:value="${cars.idCar}" />
                <input type="submit" name="useCar"  style="width: 60px" value="Name"/>
        </td>
        </form>
0
15.07.2016, 13:00

Не по теме:

Huge, вопроснечитайответпиши

0
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
15.07.2016, 17:08  [ТС]
Всем спасибо,в особенности ninjacut, и вылезла снова проблема, вроде бы все просто, но никак не дотукаю.
HTML5
1
2
3
4
5
6
7
8
9
10
<div class="form-group">
                                            <label class="col-sm-3 control-label" for="id228">Все страницы</label>
                                            <div class="col-sm-9">
                                                <select class="form-control">
                                                    <option th:each="Page : ${AllPages}" th:text="${Page.title}" th:value="${Page.url}">1</option>
                                                </select>
 
                                            </div>
                                        </div>
</div>
После селекта нужно сделать что-то вроде
HTML5
1
<input type="text" value="${Page.url}" readonly/>
,т.е. вывод url ну и еще некоторых параметров после выбора в селекте. Но ничего не получается, как менять инпут в зависимости от выбранного option.
Заранее спасибо!
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
15.07.2016, 18:56
BboyBlackjack, через javascript, цепляешь событие на изменение select-а
1
4 / 4 / 1
Регистрация: 30.11.2013
Сообщений: 108
16.07.2016, 13:15  [ТС]
Стоп, а как у меня инпуты будут знать какие-данные брать? Т.е. допустим у меня в селекте Page.title, а в инпутах должно быть Page.url, Page.title и Page.published

Добавлено через 15 часов 49 минут
Решил это тупым, на мой взгляд, способом.
HTML5
1
2
3
<select class="form-control">                       
     <option th:each="Page : ${AllPages}" th:text="${Page.title}" th:value="${Page.url}" th:attr="title=${Page.title}, url=${Page.url}, published=${Page.published}">1</option>
</select>
А дальше, как говорил ninjacut, обработал в JS. Интересует такой вопрос: можно ли как-то данные не пихать в атрибуты?
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
16.07.2016, 13:32
BboyBlackjack, Один вариант, у тебя на странице только div для вывода, дальше уже всю работу делает javascript - при загрузке страницы, он делает ajax запрос на rest controller, получает данные, заполняет dropdown, и тд.
Второй - как у тебя сейчас, но после выбора, javascript отправляет запрос и получает данные только по конкретной странице.
И соответственно в обоих случаях, в саму jsp страницу из контроллера ты не передаешь данных вовсе, или передаешь только id & title.
Я думаю лучше под первый вариант переделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2016, 13:32
Помогаю со студенческими работами здесь

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные программы. Использовал Netty, Apache...

Spring mvc spring jdbc
Простое веб приложение с использованием Spring mvc + jdbc(JdbcTemplate). Можно добавить запись в таблицу или вывести список данных из...

Spring MVC Hello + name
Здравствуйте! Только-только начал изучать это дело поэтому сильно не смейтесь. Есть задача сделать веб приложение на Spring MVC, которое...

Spring MVC
Привет. Помогите, люди добрые. Обьясниет как передать данные из HTML формы на контролер в Spring, чтобы потом можно было эти данные...

Spring MVC + Maven
Версии IDE меняются каждый месяц и неактуальные инструкции по разворачиванию приложения засоряют выдачу поисковиков. Я новичок в Java EE....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru