Профиль пользователя заблокирован сроком с 24 марта 2024 г. и навсегда по причине: систематические нарушения пункта 5.2 правил сервиса
  • Почему не отображается картинка Thymeleaf?

    @My1Name
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/images/**")
                    .addResourceLocations("file:/" + uploadPath);
        }

    Вы под Linux пишите?
  • Как вернуть состояние скролла к блоку?

    @My1Name
    А нельзя сделать проще, типа document.body.style.overflow = 'hidden'; ? Только вместо body подставить свой дивный блок с id. Одна строчка кода... А в function(event) добавить тупо счётчик событий, без всяких "локомотивов".

    p.s. js только изучаю
  • Как правильно инкрементировать переменную в javaScript?

    @My1Name Автор вопроса
    Aetae,
    это всё логично если подумать: js не типизированый язык

    - А разве не так? :) Какие типы данных существуют в js? — Признаюсь честно: Не читал даже документацию; пишу код с гуглом... Ни разу не видел, чтоб переменные были объявлены как int или string. Все данные, на сколько я понимаю — Object <String> или Object <ArrayList<String>> (в зависимости от типа селектора). И только в тех случаях, когда нужно работать с числами, переменные нужно инициализировать как number, задав им соответствующий параметр при объявлении, в данном случае == 0. Таким образом мы создаём параметризированный Object <Integer> А значение "undefined" - это не параметризированный Object <?> Правильно? var/let/const и др. объявления в js - определяют лишь область видимости (доступ к) переменной в разных частях кода, и при грамотном использовании - экономят вычислительные ресурсы?

    p.s. поставьте меня на путь истинны :)
  • Какой самый быстрый способ прочитать/записать из большого файла?

    @My1Name
    Какой размер файла? - Есть разные варианты... BufferedReader по умолчанию 10Мб, но его можно увеличить до ~1Gb (впрочем, как и byteBuffer). Дальнейшая скорость работы программы, зависит от вашего ПК и ваших методов... При переборе по строкам, увеличение размера буфера не даст никаких результатов.

    Метод readAllBytes() может загружать в память файлы до ~ 50Мб за секунду. А если искать в потоке, через stream, то такими порциями можно достаточно быстро перебрать и миллиарды. А если уж совсем быстро надо, то можно сделать таблицу индексов.
  • Как правильно инкрементировать переменную в javaScript?

    @My1Name Автор вопроса
    Андрей, Только переменные типов integer/double/long нужно явно объявлять (инициализировать), или есть ещё какие-то типы данных, которые требуют явного объявления в javaScript?
    Спасибо за ответ.
  • Бесплатный онлайн переводчик для сайта?

    @My1Name Автор вопроса
    Refguser,
    переводчики нынче встроены во многие браузеры

    он не будет переводить текст, который дозаписывается в DOM при общении через ajax. Это во-первых. А во-вторых, текс на странице может быть на разных языках. И в таком случае "браузерный переводчик" не будет переводить страницу.
  • Не запускается Spring - приложение?

    @My1Name
    Mark890, Если бин "PostRepository" зарегистрирован в конфиге, то проблема в Entity... Проверьте ещё раз свой application.properties; Какую базу данных вы используете: H2 или MySQL?
  • Не запускается Spring - приложение?

    @My1Name
    Mark890, По-моему вы пытаетесь создать свой репозиторий "postRepository" , при этом используете JPA адаптер... Покажите свой класс - интерфейс с аннотацией @Repository Думаю у вас там ошибка.
  • Где взять GitHub с хорошим кодом для Spring / Spring Boot?

    @My1Name
    Могу дать ссылку на личный пустой шаблон "Spring Boot - Security" (simple example). Его достаточно разархивировать и закинуть папку в workspace. Однако, к нему нет никаких инструкций... Нужно изучать всё самому.
  • Как масштабировать и сгруппировать картинки в одном блоке?

    @My1Name Автор вопроса
    artdeco, у меня пока что не получается... Вернусь к оформлению картинок позже.
  • Как масштабировать и сгруппировать картинки в одном блоке?

    @My1Name Автор вопроса
    Это не совсем то, что мне нужно... @media и метод построения collumn не подходят для этой задачи. В условии, картинка может быть одна, две, три или четыре. Когда картинка одна, то это 1 колонка (в случае с Bootstrap - это блок <div class="row"><div class="col-**-12"> Когда две картинки - 2 колонки. А когда 3 - это 2 колонки, и одна делится на 2. То есть средствами одного лишь CSS, получается задача не решаема...
  • Как передать аргумент в функцию javascript (jQuery)?

    @My1Name Автор вопроса
    Спасибо! Я по ходу javascript и jquery никогда не учил... Читаю код по мере надобности для реализации бизнес-логики (демо/шаблон проекта) Орхан Гасанлы (см. комментарии) интерпретируя со знаниями других языков ( ̶к̶о̶г̶д̶а̶-̶т̶о̶ ̶у̶ч̶и̶л̶ ̶T̶u̶r̶b̶o̶ ̶P̶a̶s̶c̶a̶l̶,̶ ̶c̶/̶c̶+̶+̶,̶ ̶D̶e̶l̶p̶h̶i̶, java). Javascript читабельный и достаточно понятный, а теперь и jquery подтянулся... В общем: Ещё раз спасибо за ответ! Комментаторы по тегу JAVASCRIPT сбивают с толку...
  • Как передать аргумент в функцию javascript (jQuery)?

    @My1Name Автор вопроса
    forced, Что значит не полный? - У меня есть функция с именем "showAd", которую я вызываю по нажатию на блок "truncate-text". Эта функция отрабатывает не совсем корректно (по третьему клику). Вопрос: Как это исправить? Как сделать так, чтоб функция срабатывала по первому клику?
  • Как скрыть/показать длинный текст в div-ном блоке?

    @My1Name Автор вопроса
    imko, я получаю следующий код ошибки в Console:
    Uncaught TypeError: Cannot read properties of undefined (reading 'style')

    Переписал немного CSS (сокращать текст до троеточия (без :after)
    .truncate-text {
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      line-height: 1.3em;
      height: 3.9em;
    }

    Вывел в отдельный блок текст:
    <div id="123" class="panel-body truncate-text" onClick="showAd()">
    <div class="truncate-text">
    <p>Тут какой-то текст длиной до 2000 символов, но нужно показывать до 200 символов. По событию onClick блок должен развернуться. А если блок развёрнутый - свернуться.</p>
    </div>
    </div>

    И немного поправил скрипт:
    var obj = document.getElementById("123");
    	div = obj.getElementsByClassName("truncate-text");
        if( div[0].style.height == "3.9em" ) {
    ....
    }

    Теперь просто ничего не происходит. Нет никаких сообщений об ошибках, но и ничего не меняется; текст не разворачивается.
  • Как в Runtime загрузить содержимое JSP страницы?

    @My1Name Автор вопроса
    Орхан Гасанлы, Возможно вы и правы, но я сделаю по своему :) Мне гораздо проще создать пустые страницы 404, 403, "о проекте", "правила сайта" и т.д. и т.п. написав две строчки кода и потом их дорабатывать, чем думать о них на стадии разработки... Тоже самое и с СЕО текстами. Когда сам всё пишешь (Full Stack), слишком много нужно учитывать, вплоть до юридических аспектов.

    Не подскажите, как твитер приводит URL адрес пользователей к следующему виду: https://twitter.com/UniqueAddress ?
  • Как в Runtime загрузить содержимое JSP страницы?

    @My1Name Автор вопроса
    Орхан Гасанлы,
    сильно подозреваю, что вы хотите в конечном счете получить нечто похожее на CMS

    - Так и есть. Вот только "загрузить тему по нажатию кнопки" - это мелочи, по сравнению с основной проблемой: В Spring проект нельзя добавлять новые страницы в режиме Runtime! По первой ссылке 1й ответ: "JSPs are compiled into servlet classes" и следует добавить, что html страницы (независимо от шаблонизатора) тоже компилируются, но в памяти хранится лишь специфическая разметка (теги) Spring (java) и адрес страницы.

    Как минимум, я не стал бы брать jsp. И не стал бы хранить его в WEB-INF.

    То есть вы хотите сказать, что если использовать шаблонизатор Thymeleaf, то можно создавать (новые) и хранить страницы за пределами папки проекта (по относительному адресу)?

    В теории можно для динамики подключить плагин spring-plugin, загружать вашу тему, как плагин и регистрировать новый бин.

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

    1. Создаём пустую страницу index.jsp
    2. Создаём файл со списком URL адресов (за пределами проекта) и пишем в него все не зарегистрированные урлы.
    3. Создаём контроллер, который проверяет все неизвестные адреса и перенаправляет на страницу index.jsp с выводом соответствующей разметки HTML через <%out.print(LoaderPage.getHtml());%>

    **Проблема такого решения: Отображение URL адреса той страницы, которая запрашивается. Он может быть только в виде ссылки с параметрами. Например: http://some.domain/index?randompage или просто/index
  • Как в Runtime загрузить содержимое JSP страницы?

    @My1Name Автор вопроса
    Орхан Гасанлы,
    Если юзер просто выбирает

    - Я делаю админ панель для себя... От нажатия кнопки "обновить дизайн", я ожидаю полное перестроение страниц/ы ̶(̶р̶а̶з̶у̶м̶е̶е̶т̶с̶я̶ ̶б̶е̶з̶ ̶и̶з̶м̶е̶н̶е̶н̶и̶я̶ ̶п̶о̶л̶е̶й̶ ̶в̶з̶а̶и̶м̶о̶д̶е̶й̶с̶т̶в̶и̶я̶ ̶с̶ ̶б̶э̶к̶е̶н̶д̶о̶м̶)̶.

    больше информации по задаче

    - Статические страницы, находящиеся в папке проекта /WEB-INF/** компилируются и их нельзя менять. Там всё очень сложно... Можно менять только html разметку, если заранее это предусмотреть. Причём добавлять страницы в проект, без остановки сервера - тоже нельзя. А так же нельзя указать относительный путь к файлам страниц в ResourceHandler, например вот так: ResourceLocations("file:///C:/files/index.html"); Это серьёзные ограничения и неудобства, которые в общем-то можно обойти с помощью страниц JSP... При этом Thymeleaf, если я не ошибаюсь, накладывает ограничения на использование страниц JSP; получается не решаемая задача.
  • Как в Runtime загрузить содержимое JSP страницы?

    @My1Name Автор вопроса
    Орхан Гасанлы, Спасибо, интересное решение, но это не совсем то, что мне нужно... Я делаю Admin panel и хочу добавить функцию "обновить дизайн" путём загрузки файла (или кода) страниц на сервер, в том числе JSP. То есть javascript событие "загрузка страницы" или по клику - не подходит.

    Оптимальный вариант, без taglib prefix="c" и taglib prefix="sec" это следующая конструкция на странице отображения: <%out.print(LoaderPage.getHtml());%> Проблема такого подхода заключается в том, что вышеуказанные теги "c" и "sec" не обрабатываются спрингом и выводятся как обычный текст. Страницы по всей видимости проходят через ServletContext и компилируются. Поэтому, наверно нужно делать репозиторий загрузки страниц. А вот как этот репозиторий объявить в Context - я ума не приложу...

    Пробовал как указано здесь:
    @Override
    	public void addResourceHandlers(ResourceHandlerRegistry registry) {
    		registry.addResourceHandler("/**").addResourceLocations("file:///C:/files/");
    	}

    Но оно почему-то в моём случае не работает...Возможно из-за того, что у меня нет никаких файлов конфигурации, кроме pom.xml в котором я никакие пути не прописывал (а надо?)
  • Как в Runtime загрузить содержимое JSP страницы?

    @My1Name Автор вопроса
    Сделал такой вот контроллер:
    byte [] byteArray = Files.readAllBytes(file.toPath());
        	String html = new String (byteArray, "UTF-8");
    		Writer writer = new PrintWriter(new OutputStreamWriter(
    				response.getOutputStream(), StandardCharsets.UTF_8), true);
    		try {
    			writer.append(html);
    			} finally {
    				writer.flush();
    				writer.close();
    			}

    Cтраница JSP выглядит вот так:
    <%@ page contentType="text/html; charset=UTF-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <script>
    var request = $.ajax({
    	  url: "page",
    	  method: "POST",
    	  dataType: "html"
    	});
    	 
    	request.done(function( msg ) {
    	  $(this).html(msg);
    	});
    </script>

    В результате, на страницу выводится вся разметка как обычный текст (и RU не поддерживается)...
  • Как исправить проблему импорта классов после добавления JPA зависимости?

    @My1Name Автор вопроса
    Это какой-то баг, возможно в Eclipse... Если удалить <dependency> JPA а потом заново вставить, то это тоже помогает. Причём не важно <dependency> spring-data-jpa или spring-boot-starter-data-jpa Нужно "подёргать" pom.xml (удалить, обновить и заново вставить зависимости) если все импорты классов стали недействительными.