Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 02.06.2013
Сообщений: 57

Не могу собрать сервлет в Spring

03.06.2013, 21:12. Показов 1424. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть HomeController
Code
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
package com.mycomp.newshit;
 
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
import com.mycomp.newshit.FormValidator;
import com.mycomp.newshit.Form;
 
/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {
    
    @Autowired
    private FormValidator signupValidator;
    
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    
    /**
     * Simply selects the home view to render by returning its name.
     */
    
    @RequestMapping(value = "/form", method = RequestMethod.GET)
    public String signup(ModelMap model) {
        Form signupForm = new Form();
        model.put("signupForm", signupForm);
        return "signup";
    }
 
    @RequestMapping(value = "/form", method = RequestMethod.POST)
    public String processSignup(Form signupForm, BindingResult result) {
        signupValidator.validate(signupForm, result);
        if (result.hasErrors()) {
            return "signup";
        }
        return "success";
    }
        
    
    
    
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        logger.info("Welcome home! The client locale is {}.", locale);
        
        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
        
        String formattedDate = dateFormat.format(date);
        
        model.addAttribute("serverTime", formattedDate );
        
        return "home";
    }
    
}
А есть FormValidator

Code
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
package com.mycomp.newshit;
 
import org.apache.commons.validator.routines.EmailValidator;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
 
import com.mycomp.newshit.Form;
 
public class FormValidator implements Validator {
    
    public boolean supports(Class<?> clazz) {
        return Form.class.isAssignableFrom(clazz);
    }
 
    public void validate(Object target, Errors errors) {
        Form signupForm = (Form) target;
        
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "username.empty", "Username must not be empty.");
        String username = signupForm.getUsername();
        if ((username.length()) > 16) {
            errors.rejectValue("username", "username.tooLong", "Username must not more than 16 characters.");
        }
        
        ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "password.empty", "Password must not be empty.");
        if (!(signupForm.getPassword()).equals(signupForm
                .getConfirm())) {
            errors.rejectValue("confirmPassword", "confirmPassword.passwordDontMatch", "Passwords don't match.");
        }
        
        if( !EmailValidator.getInstance().isValid( signupForm.getEmail() ) ){
            errors.rejectValue("email", "email.notValid", "Email address is not valid.");
        }
    }   
 
}

При попытке забилдить выдает ошибку.
Error creating bean with name 'homeController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCr eationException: Could not autowire field: private com.mycomp.newshit.FormValidator com.mycomp.newshit.HomeController.signup Validator; nested exception is org.springframework.beans.factory.NoSuch BeanDefinitionException: No matching bean of type [com.mycomp.newshit.FormValidator] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.anno tation.Autowired(required=true)}
Щито делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.06.2013, 21:12
Ответы с готовыми решениями:

Не могу развернуть сервлет
Ошибка: Starting GlassFish Server Could not start GlassFish Server: Authorization failed for another server running on administrator...

Не могу запустить сервлет
Начал изучать сервлеты. Установил томкат, запустил сервер. Написал просто класс HelloServlet.java скомпилил и бросил в папку...

НЕ могу передать параметры с тега в сервлет
Здравствуйте. Подскажите мне, почему при получении параметров с тега &lt;select&gt; выдает null? Что я делаю не так? public class...

7
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
03.06.2013, 21:36
а где хмл с бинами?
0
1 / 1 / 0
Регистрация: 02.06.2013
Сообщений: 57
03.06.2013, 23:04  [ТС]
Они должны лежать в pom.xml?

Добавлено через 26 минут
Мне сказали, что можно через аннотации сделать.
"Вам нужно этот класс замапить"
Это как?

Добавлено через 31 минуту
Нашел бины.
XML
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
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc [url]http://www.springframework.org/schema/mvc/spring-mvc.xsd[/url]
        [url]http://www.springframework.org/schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans.xsd[/url]
        [url]http://www.springframework.org/schema/context[/url] http://www.springframework.org/schema/context/spring-context.xsd">
 
    <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
    
    <!-- Enables the Spring MVC @Controller programming model -->
    <annotation-driven />
 
    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
    <resources mapping="/resources/**" location="/resources/" />
 
    <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
    <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>
    
    <context:component-scan base-package="com.mycomp.newshit" />
    
    
    
</beans:beans>
Добавлено через 14 минут
Хм, я просто добавил аннотацию @Service и вроде заработало. Но как только я отправляю форму то получаю ошибку
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/signup.jsp at line 20

17: <table>
18: <tr>
19: <td>Username:</td>
20: <td><form:input path="username" /></td>
21: <td><span class="error"><form:errors path="username" /></span></td>
22: </tr>
23:


Вот 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ page session="false"%>
<html>
<head>
<title>Sign Up</title>
<style type="text/css">
span.error {
    color: red;
}
</style>
</head>
<body>
    <h1>Sign Up</h1>
 
    <form:form method="post" commandName="signupForm">
        <table>
            <tr>
                <td>Username:</td>
                <td><form:input path="username" /></td>
                <td><span class="error"><form:errors path="username" /></span></td>
            </tr>
 
            <tr>
                <td>Password:</td>
                <td><form:password path="password" /></td>
                <td><span class="error"><form:errors path="password" /></span></td>
            </tr>
 
            <tr>
                <td>Confirm Password:</td>
                <td><form:password path="confirm" /></td>
                <td><span class="error"><form:errors
                            path="confirm" /></span></td>
            </tr>
 
            <tr>
                <td>Email:</td>
                <td><form:input path="email" /></td>
                <td><span class="error"><form:errors path="email" /></span></td>
            </tr>
 
            <tr>
                <td colspan="3"><input type="submit" value="Submit" /></td>
            </tr>
        </table>
    </form:form>
 
    <a href="${pageContext.request.contextPath}/" title="Home">Home</a>
</body>
</html>
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
04.06.2013, 01:15
советую вам начать читать официальную документацию по спрингу
0
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
04.06.2013, 15:55
а сам FormValidator не надо помечать как бин?
0
1 / 1 / 0
Регистрация: 02.06.2013
Сообщений: 57
04.06.2013, 16:27  [ТС]
я думал, аннотация все решит.
0
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
04.06.2013, 16:29
Одна аннотация решит сразу все?
0
1 / 1 / 0
Регистрация: 02.06.2013
Сообщений: 57
04.06.2013, 16:31  [ТС]
Я просто поставил @Component перед public class FormValidator implements Validator.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.06.2013, 16:31
Помогаю со студенческими работами здесь

Не могу в Spring MVC
Есть простой сервлет и три странички: главная, формочка и страница, которая показывает, что заполнение формы прошло успешно. Что у меня...

Не могу разобраться с Spring Security
Разбираюсь с security. Нашел такой пример: home.jsp: &lt;spring:url value=&quot;/secure/&quot; var=&quot;secureUrl&quot; /&gt; &lt;a...

не могу найти ошибку (Spring)
Здравствуйте, столкнулся с проблемой, подскажите пожалуйста как решить её. Нужно создать проект с использованием Spring MVC + Hibernate +...

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

Spring Security не могу разлогинится
Добрый день. Пытаюсь использовать Spring Security, делаю конфиг @Autowired public void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru