powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с реализацией Sitemesh (Spring MVC)
9 сообщений из 9, страница 1 из 1
Проблема с реализацией Sitemesh (Spring MVC)
    #39814546
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня был рабочий проект, который я хочу с помощью 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
Проблема с реализацией Sitemesh (Spring MVC)
    #39814567
alex55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fallen2019я хочу чтобы код шаблона который я написал в этом файле не писать снова в других JSP страницах
Для этого в стандарте JSP есть два вида директив include. И не надо городить огород с этим спрингом. Всё равно ты его плохо понимаешь.
...
Рейтинг: 0 / 0
Проблема с реализацией Sitemesh (Spring MVC)
    #39814570
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Проблема с реализацией Sitemesh (Spring MVC)
    #39814578
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Проблема с реализацией Sitemesh (Spring MVC)
    #39814581
fallen2019
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vas0,

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

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

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

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

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


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