Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с реализацией Sitemesh (Spring MVC) / 9 сообщений из 9, страница 1 из 1
17.05.2019, 12:34
    #39814546
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
У меня был рабочий проект, который я хочу с помощью Sitemesh упростить. У меня есть один шаблон меню "menutemplate.jsp" я хочу чтобы код шаблона который я написал в этом файле не писать снова в других JSP страницах, а просто использовать Sitemesh. Я просмотрел пару туториалов и попытался сделать, но не работает, можете посмотреть и сказать, где я мог ошибиться.

Вот мой шаблон "menutemplate"
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
<%-- 
    Document   : menutemplate
    Created on : 17.05.2019, 14:56:16
    Author     : Adil
--%>
<%@page contentType="text/html" pageEncoding="UTF-8" isELIgnored="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <link href="style.css" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
        <link href="../css/style.css" rel="stylesheet" type="text/css">
        <style><%@include file="/css/style.css"%></style>





        <title>Home Page</title>
        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
        <img class='img' src='<c:url value="/images/home.jpg"/>'>
         <style>
         html { 
             background-image: url(/images/home.jpg);
             background-repeat: no-repeat;
             background-size: cover;
             position: relative;
             height: 100%;
         }
         </style>
    </head>

         <body>


         <nav class="navbar navbar-inverse">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="#">School</a>
            </div>
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">Главная</a></li>
                <li><a href="#">Наш университет</a></li>
                <li><a href="#">Электронный журнал</a></li>
                <li><a href="#">Студенты</a></li>
                <li><a href="#">Фотогалерея</a></li>
                <li><a href="#">Карьера</a></li>
                <li><a href="#">Контакты</a></li>
            </ul>
            <form class="navbar-form navbar-left" action="/action_page.php">
                <div class="form-group">
                    <input type="text" class="form-control" placeholder="Search" name="search">
                </div>
                <button type="submit" class="btn btn-default">Поиск</button>
            </form>
        </div>
    </nav>





</body>
</html> 



Декоратор "homeDecorator.jsp"

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<%-- 
    Document   : studentDecorator
    Created on : 16.05.2019, 15:43:08
    Author     : Adil
--%>
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <link href="style.css" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
        <link href="../css/style.css" rel="stylesheet" type="text/css">
        <style><%@include file="/css/style.css"%></style>
 <title><sitemesh:write property='title'/></title>
 <sitemesh:write property='head'/>
 </head>

 <body>

 <sitemesh:write property='body'/>

  <jsp:include page="/WEB-INF/template/menutemplate.jsp"/>  


 </body>
</html>



Decorator.XML

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
.<?xml version="1.0" encoding="ISO-8859-1"?>

<decorators defaultdir="/WEB-INF/decorators">


    <decorator name="mainpage" page="menutemplate.jsp">
        <pattern>/index</pattern>
    </decorator>


Sitemesh3.xml
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="windows-1251"?>

<sitemesh>
 <mapping path="/views/allStudents" decorator="/WEB-INF/decorators/defaultDecorator.jsp"/>
 <mapping path="/views/addStudent" decorator="/WEB-INF/decorators/defaultDecorator.jsp"/>
 <mapping path="/views/editStudent" decorator="/WEB-INF/decorators/defaultDecorator.jsp"/>
 <mapping path="/views/index" decorator="/WEB-INF/decorators/defaultDecorator.jsp"/>

</sitemesh>


Вот один из JSP файлов где я хочу этот шаблон вставить index.jsp
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
<%@page contentType="text/html" pageEncoding="UTF-8" isELIgnored="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <link href="style.css" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
        <link href="../css/style.css" rel="stylesheet" type="text/css">
        <style><%@include file="/css/style.css"%></style>
        <title>Home Page</title>

</head>
<body>
 <div class="bg">
        <div class ="pokaz">
            <form action="allStudents" method="post">
                 <input class="btn btn-primary" type="submit" value="Показать всех студентов">
            </form>

        </div>
    </div>
</body>
</html>



Расположение моих файлов
...
Рейтинг: 0 / 0
17.05.2019, 13:15
    #39814567
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
fallen2019я хочу чтобы код шаблона который я написал в этом файле не писать снова в других JSP страницах
Для этого в стандарте JSP есть два вида директив include. И не надо городить огород с этим спрингом. Всё равно ты его плохо понимаешь.
...
Рейтинг: 0 / 0
17.05.2019, 13:19
    #39814570
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
alex55555,

Поменял название папки "template" на "include"
В Decorator все правильно написал же?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <link href="style.css" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
        <link href="../css/style.css" rel="stylesheet" type="text/css">
        <style><%@include file="/css/style.css"%></style>
 <title><sitemesh:write property='title'/></title>
 <sitemesh:write property='head'/>
 </head>
 
 <body>

 <sitemesh:write property='body'/>
 
  <jsp:include page="/WEB-INF/include/menutemplate.jsp"/>  
 
 
 </body>
</html>
...
Рейтинг: 0 / 0
17.05.2019, 13:32
    #39814578
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
fallen2019,

В принципе возможностей JSP хватает для того что сделать шаблоны. Это можно сделать с помощью Tag Files. Ты подготовливаешь свои тэги, а потом их повторно использовать.

Принцип такой:
1. В WEB-INF создаешь папку tags (WEB-INF/tags - это директория по спецификации сервлетов).
2. Создаешь свой шаблон ui/html.tag (WEB-INF/tags/ui/html.tag ) - это например основной шаблон всех твоих будущих страничек.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<%@ tag language="java" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ attribute name="title" required="true" type="java.lang.String" %>

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0"/>
    <meta charset="utf-8"/>
    <title>${title}</title>

    <c:url var="href" value="/css/bootstrap.min.css"/>
    <link href="${href}" rel="stylesheet"/>

    <c:url var="href" value="/css/style.css"/>
    <link href="${href}" rel="stylesheet"/>

    <c:url var="href" value="/js/underscore.min.js"/>
    <script src="${href}"></script>

    <c:url var="href" value="/js/jquery.1.10.2.min.js"/>
    <script src="${href}"></script>

    <c:url var="href" value="/js/bootstrap.min.js"/>
    <script src="${href}"></script>
</head>
<body>
    <jsp:doBody/> <%-- Это запуск/отрисовка того что будет написано внутри твоего тэга --%>
</body>
</html>


3. Используешь в любой своей jsp этот базовый шаблон.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ taglib prefix="ui" tagdir="/WEB-INF/tags/ui" %> <%-- Это подключение созданного тобой набора шаблонов --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<ui:html title="Some Title">
    <%-- Тут все твое содержимое которое ты хочешь отобразить --%>
</ui:html>
...
Рейтинг: 0 / 0
17.05.2019, 13:36
    #39814581
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
vas0,

Это получается тоже Sitemesh?
Просто нужно только через Sitemesh реализовать
...
Рейтинг: 0 / 0
17.05.2019, 13:39
    #39814585
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
fallen2019,

Это просто чистый JSP. Когда будут спрашивать, скажи в топку ваш Sitemesh, когда можно сделать намного проще...
...
Рейтинг: 0 / 0
17.05.2019, 13:41
    #39814587
fallen2019
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
vas0,

Мне сказали, чтобы только Sitemesh был((
...
Рейтинг: 0 / 0
17.05.2019, 13:47
    #39814592
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
fallen2019,

Простое решение намного лучше сложного. Поэтому если не дураки принимают, то придирок быть не должно.
Да и вообще может они сами других подходов не знают, а ты их чему-нибудь новому научишь.
...
Рейтинг: 0 / 0
18.05.2019, 11:06
    #39814842
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с реализацией Sitemesh (Spring MVC)
fallen2019Мне сказали, чтобы только Sitemesh был
Ну тогда всё плохо. Ты путаешься в элементарных вещах, типа путей к картинкам в html или к включаемым jsp, а тут надо ещё sitemesh изучать.

Сначала надо подтянуть базу, что бы элементарный html работал, а если не работает, то что бы ты его легко мог довести до рабочего состояния. И только потом лезть в глубины каких-то библиотек.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с реализацией Sitemesh (Spring MVC) / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]