@Bean
public SpringResourceTemplateResolver templateResolver(){
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(servletContext);
templateResolver.setPrefix("/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setCacheable(false); // отключаем везде кэш на время разработки
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine(){
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
templateEngine.setEnableSpringELCompiler(true);
return templateEngine;
}
@Bean
public ThymeleafViewResolver viewResolver(){
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setCharacterEncoding("UTF-8");
return viewResolver;
}jakarta.servlet и thymeleaf-spring6 в poom.xml<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>src/main/webapp/hello.htmltemplateResolver.setPrefix("/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);@Controller
@RequestMapping("/")
public class FirstController {
@GetMapping("/hello")
public String helloPage() {
return "hello";
}
}localhost:8080/hello где 8080 - это номер порта на котором работает ваш сервер.String imgName;
for(byte i=0; i<arrayImages.size();i++) {
imgName = arrayImages.get(i).getOriginalFilename().toLowerCase();
if (imgName.isBlank())
removeSlide(i);
else if (imgName.indexOf("s-1.")!=-1 || imgName.indexOf("s-2.")!=-1 ||
imgName.indexOf("s-3.")!=-1 || imgName.indexOf("s-4.")!=-1) {
assert true; // file exists. Nothing to do.
}
else {
imgName = setCorrectName(imgName, i);
if (imgName!=null) {
// some code...
}
}indexOf() на регулярное выражение matches но оно ни в какую не хочет корректно работать. возможно, вы знаете другие способы обработки запросов помощников CORS?
HashSet<String> то сможете проверить наличие определенного String-а в массиве строк, заменив s.equals(sb) на list.contains(sb) Такой код будет работать в оперативной памяти используя hashcode (32 битный идентификатор объекта). Это работает быстро и эффективно, так как числовые значения гораздо легче и быстрей сравнить. Однако, каждая строка будет представлять собой отдельный объект и занимать свою ячейку в памяти.outofmemoryerror прежде чем GC (сборщик мусора) успеет собрать все созданные объекты.HashSet<String> но с одной ("резиновой") ячейкой в памяти.Как мне сделать так что бы соответствующий http post запрос доставлял на эту страницу sql запрос, далее который обрабатывался и выдавал ответ в качестве выгрузки html с бд.
JDBC я не могу использовать, так как прямого где login и password у меня нет.
Как мне теперь обратиться к этому объекту в параметре метода контролера?
@InitBinder но я также не увидел, чтоб вы где-то создали объект "Product". Если WebDataBinder считается объектом, то вы его преобразовали в строку String str = binder.getTarget().toString()+ Далее вы создали MutablePropertyValues, что эквивалентно Map <String, String> или <String, Object> Короче говоря: вы нигде не создали объект Product чтоб к нему обращаться. Сброс кэша в браузере
response.setHeader("Cache-Control", "no-cache, no-store");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");registry.setCachePeriod(0);http.
....
and()
.deleteCookies("JSESSIONID")
.http.build(); <td th:text="${teacher.additionalSkills} ?: 'UNKNOWN'" />List <?> В Spring этот условный оператор мало чем отличается от if/else, и лично я ни разу его не использовал. Подскажите в чем может быть причина ошибки компиляции?
src\main\java\ru\geraskindenis\repository\impl\PersonalAccountRepositoryImpl.java:32: error: cannot find symbol
preparedStatement.setLong(1, personalAccount.getOwnerId());
@Entity и БД preparedStatement Судя по "cannot find symbol" - ошибка ^ в SQL запросе (но это не точно).Как установить в ответ http-код 412 и одновременно отменить выполнение запросов типа POST, PUT, DELETE?
@GetMapping Второй с аннотацией @RequestMapping("/") или @PostMapping для выше упомянутых случаев, и добавить в его параметры HttpServletResponse resp В теле метода: resp.setStatus(412); return "redirect:error_page.html"; Можно сделать метод void или делать переадресацию.@PostMapping import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class Main {
public static void main(String[] args) {
String command = "C:\\ путь к файлу .exe для запуска MySQL сервера с приложения \\MySQL Server 8.0\\bin\\mysqld.exe";
try{
Runtime.getRuntime().exec(command); //run MySql
String url = "jdbc:mysql://localhost/";
String username = "root";
String password = "byDefault";
Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance();
try (Connection conn = DriverManager.getConnection(url, username, password)){
Statement statement = conn.createStatement();
statement.execute("CREATE DATABASE IF NOT EXISTS usersdb");
statement.execute("USE usersdb");
statement.execute("CREATE TABLE IF NOT EXISTS users"+
"(id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,"+
"email VARCHAR(256) NOT NULL,"+
"password VARCHAR(128),"+
"UNIQUE KEY(email));");
}
}
catch(Exception e){
e.printStackTrace();
}
}FuzzyQuery - это один из множества фильтров (модификаторов) запроса. Фильтры нужно комбинировать для получения желаемого результата. Вот некоторые из них: TermQuery, PhraseQuery, BooleanQuery, WildcardQuery, PrefixQuery...@Configuration
@EnableWebSocketSecurity
public class WebSocketSecurityConfig {
@Bean
AuthorizationManager<Message<?>> messageAuthorizationManager(MessageMatcherDelegatingAuthorizationManager.Builder messages) {
return AuthorityAuthorizationManager.hasRole("USER");
}
}<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>if (Objects.equals(selectedOption, options[0])) {
menu.setVisible(true);
viewer.dispose();
} else {
viewer.setVisible(false);
....System.exit(0);Изменение параметров видимости окна "setVisible" и закрытие программы, это не одно и тоже. GraphicsViewer(model) и позиционируете его при нажатии "Exit" вместо завершения программы.