это всё логично если подумать: js не типизированый язык
Object <String>
или Object <ArrayList<String>>
(в зависимости от типа селектора). И только в тех случаях, когда нужно работать с числами, переменные нужно инициализировать как number, задав им соответствующий параметр при объявлении, в данном случае == 0. Таким образом мы создаём параметризированный Object <Integer>
А значение "undefined" - это не параметризированный Object <?>
Правильно? var/let/const и др. объявления в js - определяют лишь область видимости (доступ к) переменной в разных частях кода, и при грамотном использовании - экономят вычислительные ресурсы?переводчики нынче встроены во многие браузеры
@media
и метод построения collumn
не подходят для этой задачи. В условии, картинка может быть одна, две, три или четыре. Когда картинка одна, то это 1 колонка (в случае с Bootstrap - это блок <div class="row"><div class="col-**-12">
Когда две картинки - 2 колонки. А когда 3 - это 2 колонки, и одна делится на 2. То есть средствами одного лишь CSS, получается задача не решаема... Uncaught TypeError: Cannot read properties of undefined (reading 'style')
.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" ) {
....
}
https://twitter.com/UniqueAddress
? сильно подозреваю, что вы хотите в конечном счете получить нечто похожее на CMS
Как минимум, я не стал бы брать jsp. И не стал бы хранить его в WEB-INF.
В теории можно для динамики подключить плагин spring-plugin, загружать вашу тему, как плагин и регистрировать новый бин.
<%out.print(LoaderPage.getHtml());%>
http://some.domain/index?randompage
или просто/index
Если юзер просто выбирает
больше информации по задаче
ResourceLocations("file:///C:/files/index.html");
Это серьёзные ограничения и неудобства, которые в общем-то можно обойти с помощью страниц JSP... При этом Thymeleaf, если я не ошибаюсь, накладывает ограничения на использование страниц JSP; получается не решаемая задача. 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/");
}
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();
}
<%@ 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>
<dependency>
JPA а потом заново вставить, то это тоже помогает. Причём не важно <dependency> spring-data-jpa
или spring-boot-starter-data-jpa
Нужно "подёргать" pom.xml (удалить, обновить и заново вставить зависимости) если все импорты классов стали недействительными.
Вы под Linux пишите?