• Почему не происходит авторизация в Spring security?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Сделаю смелое предположение:

    Вот, тут вы разрешили отправлять запросы на url/login
    .antMatchers("/").permitAll()
        			.antMatchers("/login").permitAll()


    А тут говорите, что страницей аутентификации является /auth
    .loginPage("/auth")

    В форме вы отправляете запрос на action="@{/auth}" А отправлять запрос на указанный урл вам просто не разрешено и вы получите 403 permission denied.
    Добавьте в конфиг:
    .antMatchers("/auth").permitAll()
    Ответ написан
  • Почему Maven не видит ссылки к Selenium?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Во-первых, у вас <version>Latest</version>, вместо Latest должна быть версия.
    Гляньте тут на актуальную стабильную версию - https://mvnrepository.com/artifact/org.seleniumhq....

    Далее не забудьте обновить конфигурацию maven.
    Если это не решит вашу проблему, то попробуйте File -> Invalidate Caches & Restart
    Ответ написан
    Комментировать
  • Как прочитать варианты клетки-дропдауна из Excel-таблицы?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Возможно, информация по ссылке будет полезна для вас. Тут ответ на аналогичный вопрос:
    (обратите внимание на оба ответа)
    https://stackoverflow.com/questions/21181551/read-...

    Также по теме:
    https://stackoverflow.com/questions/51017694/apach...
    Ответ написан
    Комментировать
  • Как добавить такую форму как на сайте?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вообще, подобная форма создается добавлением пару строчек кода (CSS) и использованием Contact Form 7.
    Но если вы хотите обойтись вообще без написания кода, то используйте возможности виз. редакторов. Например, для Visual Composer есть куча доп. виджетов благодаря чему вы можете добавить форму, иногда подобные формы поставляются вместе с премиум темами. Если ваша тема подточена под элементор, то может быть внутри нее будут подобные готовые формы
    Ответ написан
    Комментировать
  • Как в rest-контроллере принимать данные формы, у которой может меняться количество полей?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Обычно, есть отдельный контроллер ответственный за загрузку файлов. Можно создать некий RestController, на который аяксом отправляются загружаемые файлы, а в ответе возвращать id файла хранимого в БД после загрузки.

    Если вы решили реализовать тем способом, которым вы сейчас это делаете, то почему бы вам не попробовать использовать модель (DTO). Создайте pojo нужной структуры, если есть обязательные поля, которые должны присутствовать, то используйте либу spring validation.

    При необходимости, используйте ModelMapper или Struts или класс Converter<S, T> для конвертации dto в entity
    Ответ написан
  • Как зарегистрировать спринговый сервис в рантайме?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Вот, наглядная статья по теме:
    https://medium.com/@venkivenki4b6/spring-dynamical...
    Обратите внимание на пункт 4
    This can be done in many ways. We will be discussing the following with examples.
    
        GenericBeanDefinition
        BeanDefinitionBuilder
        BeanFactoryPostProcessor
        BeanDefinitionRegistryPostProcessor


    Вот, еще по теме:
    https://stackoverflow.com/questions/57157396/how-t...
    Ответ написан
    Комментировать
  • Не получается сделать клик по элементу внутри frama. Ошибка ElementNotInteractableException?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Если не ошибаюсь, то вам нужно переключиться на iframe. Вы не можете кликнуть на его элементы не переключившись на него.
    Полезная ссылка по теме:
    https://www.guru99.com/handling-iframes-selenium.html

    It is impossible to click iframe directly through XPath since it is an iframe. First we have to switch to the frame and then we can click using xpath.


    Вот, как происходит переключение на фрейм (прочитайте статью по ссылке выше):
    driver.switchTo().frame("a077aa5e");
    Ответ написан
  • Почему на JSP странице русские символы отображаются кракозябрами?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Я использую properties-файлы, в которых на нужном языке пишу текст. Нужно проверить, чтобы текст в данных файлах был установлен как UTF-8

    Если не ошибаюсь, то в properties используется кодировка ISO 8859-1
    Вот, похожий вопрос касаемый кодировки файла properties
    https://stackoverflow.com/questions/37436927/utf-8...

    Что касается ваших крякозабров, то основываясь на этой инфографике
    https://evc27.pcloud.com/dpZCsmjtXZHvQPG0Z4gx7Z7Zj...
    У вас UTF-8 кодировка, которая отображается в win-1252

    Также проверьте кодировку браузера. В некоторых браузерах есть возможность задавать кодировку. Если в других браузерах страница отображается корректно и проблема только в вашем браузере, то скорее всего проблема на клиентской части с кодировкой браузера.

    И еще вариант в html должна быть указана кодировка utf-8 внутри тега head
    <head>
      <meta charset="UTF-8">
    </head>
    Ответ написан
  • Как использовать код java, чтобы открыть текстовый файл например?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    К вопросу запуска программ Windows через Java, можно глянуть сюда:
    Как запускать программы через cli на Windows - https://superuser.com/questions/494538/how-do-i-op...
    К вопросу, как выполнять команды в cmd - https://stackoverflow.com/questions/15464111/run-c...
    Посмотрите на классы Process & ProcessBuilder. По ссылке выше показан пример их использования

    Или браузер например открыть.

    Зависит от того, с какой целью вы хотите открыть браузер. Если подразумевается дальнейшая работа с браузером из кода (например, тестирование, парсинг или еще что...), то гляньте на Selenium.
    https://www.browserstack.com/guide/run-selenium-te...

    Гуглим -
    java selenium {ваш_браузер}
    Ответ написан
    Комментировать
  • Как создать listView из объектов в javaFx?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Если вопрос в плане реализации, то вам нужно получить ObservableList<String> названий из вашего List<T> и вывести его:
    https://metanit.com/java/javafx/4.8.php

    Если вопрос в плане компонентов, то:
    Для JavaFX есть такая либа, как JFoenix. Можно например, воспользоваться ее функционалом.
    www.jfoenix.com/documentation.html#ListView

    Можно еще воспользоваться ControlsFX - https://controlsfx.github.io/features/listselectio...
    Ответ написан
    Комментировать
  • Если практически не знаю JS и TypeScript к изучению Angular бессмысленно приступать?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Изучать Angular или любой другой js фреймворк без владения js или ts равноценно, как строить ракету, не зная физику. Может быть что-то вы и построите, но полетит ли?

    Вывод:
    Изучите язык, чтобы иметь возможность пользоваться инструментом.
    Ответ написан
    Комментировать
  • Как заменить java 11 на java 8 в debian?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Соглашусь с коллегой Sand, лишь отмечу, что на linux гораздо удобнее использовать sdkman. С его помощью вы можете быстро переключаться между нужными версиями и устанавливать нужные вам версии
    https://sdkman.io/
    Ответ написан
    3 комментария
  • Почему аннотации @PreAuthorize, @HasRole и т.д. рекомендуется устанавливать в сервисе, а не в контроллере?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Вот, тут дан довольно неплохой ответ на ваш вопрос:
    https://stackoverflow.com/questions/14626969/shoul...
    Ответ написан
    Комментировать
  • Какой из бесплатных курсов посоветуете пройти?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Могу поделиться своим опытом изучения Java:

    Как по мне, курсы не стоит посещать с нуля, ибо в результате вам прочитают определенный набор лекций, дадут домашки и т.д. и в принципе, вы изучите азы разработки на Java, но в любом случае у вас останется куча вопросов, которые вы хотели бы задать преподавателю.
    Гораздо интереснее, когда вы уже владеете языком и посещаете курсы для систематизации своих знаний и получения большего опыта. В этом случае можно даже курсы не посещать, а найти ментора, который будет рад ответить на ваши вопросы. А если повезет, то можете поработать на реальных проектах совместно с ментором. Ментор поможет акцентировать ваше внимание на тех вещах, на которые вы возможно, ранее не обратили бы должного внимания.
    Курсы разные и по-разному обучают. Скажу честно, не увидел ничего особенного в JavaRush ровно, как и в курсах, которые предлагал Stepik. Можно глянуть на курсы Udemy, там есть неплохие (можете глянуть на курсы Наиля Алишева). Есть парочка курсов и на ютуб.
    Но одно скажу точно, без книг в серьезный девелопмент - никак. Вам однозначно нужно прочитать книги, которые вам уже посоветовали коллеги в своих ответах.
    Ответ написан
    Комментировать
  • Проверить встречается ли строка больше одного раза?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день. Давным-давно писал аналогичный учебный проект про приобретению билета для кино.
    Правда, я тогда уже использовал Hibernate + MySQL.
    Вот, тут можно глянуть исходники - https://github.com/hasanli-orkhan/learn-java/tree/...

    Скажу, что ваш код реализован некорректно.
    Во-первых, Java это ООП язык и соответственно, вам нужно использовать всю мощь ООП. Например, создайте pojo Ticket, у каждого билета своя стоимость, а также булево значение isPurchased и т.д. В общем, гляньте на исходник моего проекта станет ясно.

    Такой вариант плох тем, что во-первых это скорее процедурный подход, нежели ООП. Во-вторых, представьте, что у вас завтра изменится стоимость билетов и вам нужно править код в нескольких местах. А завтра заказчик скажет, что валюта не в долларах, а в рублях и вам придется заново править код и т.д.
    так не должно быть
    public static void ticketPrice(int rows, int seats, int checkRow) {
            System.out.println();
            if (rows * seats <= 60) {
                System.out.println("Ticket price: $10");
            } else {
                if (rows % 2 == 0) {
                    if (checkRow <= rows / 2) {
                        System.out.println("Ticket price: $10");
                    } else {
                        System.out.println("Ticket price: $8");
                    }
                } else {
                    if (checkRow <= rows / 2) {
                        System.out.println("Ticket price: $10");
                    } else {
                        System.out.println("Ticket price: $8");
                    }
                }
            }
        }


    Далее если вы оперируете валютой, то лучше использовать BigDecimal, вместо double.

    Разделите ваш код на объекты. Например, Cinema, Ticket, Session и др. Далее создайте сервисные классы, в которых будут методы по добавлению фильма, по приобретению билетов и т.д.
    Ответ написан
    5 комментариев
  • Как в цикле реализовать проверку условия?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день
    Чтобы не писать кучу if... else или switch ... case, можно попробовать использовать паттерн Chain Of Responsibility
    https://refactoring.guru/ru/design-patterns/chain-...
    Во-первых, код получится более лаконичным, а во-вторых, вы сможете реализовать то, что нужно.
    Условно говоря, если код не проходит на проверку через опеределенный фильтр, то условие не выполняется, а если выполняется, то запрос проходит по цепочке дальше.
    Ответ написан
    1 комментарий
  • Как посадить Swiper на ACF?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Сложно сказать в чем заключается проблема не видя ни самого сайта, ни ошибки.
    Нужно провести дебаг и глянуть, что может быть не так.

    - убедитесь, что название кастомного поля repeater указано верно: slider_card
    - убедитесь, что название кастомных полей указано верно: image_product и др
    - обратите внимание на то, где именно вы создали кастомные поля и как его выводите. Если это ACF Option, то вторым аргументов нужно указать 'option', если вы создали кастомное поле для определенной страницы (например, для главной), а выводите этот блок на другой странице, то нужно ID главное передать в качестве второго аргумента.
    - в полях, в которых вы выводите картинки обратите внимание на тип возвращаемого значения. Может быть вы не то возвращаете
    - попробуйте убрать swiper и без него просто выведите блок ACF. Скорее всего проблема сохранится, а если нет, то проблема уже на стороне swiper.
    - также может быть стили где-то переписываются и блок не видим или еще что...
    Ответ написан
    1 комментарий
  • Что делать если на мобильном телефоне ссылка открываеться со второго клика?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Предположу, что это связано со следующим:
    У вас есть div блок с классом: cms-banner-inner
    к нему добавлен event из js файла doubletaptogo.js (двойной клик, чтобы продолжить)
    cyDYFai.png

    Вот, ссылка на файл, который это делает:
    http://testsiteforbudsegment.pp.ua/wp-content/themes/toolsjet/js/codezeel/doubletaptogo.js

    Скорее всего этот скрипт при условии, что вход был произведен с моб. устройства, ловит клик на элементе, далее делает event.preventDefault и ожидает двойного клика на элементе.
    В общем, смотрите в настройки темы, скорее всего есть где-то функция, чтобы отключить это

    /*
    	By Osvaldas Valutis, www.osvaldas.info
    	Available for use under the MIT License
    */
    
    
    
    ;(function( $, window, document, undefined )
    {
    	$.fn.doubleTapToGo = function( params )
    	{
    		if( !( 'ontouchstart' in window ) &&
    			!navigator.msMaxTouchPoints &&
    			!navigator.userAgent.toLowerCase().match( /windows phone os 7/i ) ) return false;
    
    		this.each( function()
    		{
    			var curItem = false;
    
    			$( this ).on( 'click', function( e )
    			{
    				var item = $( this );
    				if( item[ 0 ] != curItem[ 0 ] )
    				{
    					e.preventDefault();
    					curItem = item;
    				}
    			});
    
    			$( document ).on( 'click touchstart MSPointerDown', function( e )
    			{
    				var resetItem = true,
    					parents	  = $( e.target ).parents();
    
    				for( var i = 0; i < parents.length; i++ )
    					if( parents[ i ] == curItem[ 0 ] )
    						resetItem = false;
    
    				if( resetItem )
    					curItem = false;
    			});
    		});
    		return this;
    	};
    })( jQuery, window, document );
    Ответ написан
    2 комментария
  • Как брать только определенные данные из сайта?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Вам нужно написать парсер, который будет собирать для вас необходимую информацию.
    Тут надо отметить один нюанс - все зависит от сайта.
    Например, если сайт является неким MVC app, то вы можете использовать jsoup для парсинга данных. Если контент сайта формируется динамически (т.е. есть некий фронтэнд), то можно не парсить данные из html, а глянуть на внутренний API сайта и спарсить JSON. А дальше средствами java собрать коллекцию pojo из спарсенных данных и сохранить в БД или еще где... А дальше вывести в устройстве (Например, RecyclerView или еще что...)
    В общем, как-то так...
    Ответ написан
  • Создание стр для записей и блога?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Это скорее задание, а не вопрос...

    Разделим вашу задачу на несколько этапов:

    1) нужны ли вам категории? Например, мебель для кухни, мебель для спальни и т.д. Если да, то создайте таксономию
    https://wp-kama.ru/function/register_taxonomy

    2) создайте кастомный тип записи
    https://wp-kama.ru/function/register_post_type или поищите плагин для создания CPT

    2) установите плагин Essential Grid и выведите ваши записи на нужной странице.
    Это самое простое решение

    Или же можно установить плагин Woocommerce. Отключить ненужный функционал (корзину, страницу оплаты и т.д.) и вывести товары на странице.

    Т.е. можно по-разному реализовать вашу задачу.

    Вот, похожие сайты:

    https://vashfasad.by/
    https://minskmebel.by/
    Ответ написан
    2 комментария