Kontroler nie wyświetla mi widoku Spring MVC

0

Mam problem z wyświetlenie widoków w springu.

np. widok user po ścieżce http://localhost:8080/xxxx/index wyświetla mi stringa user a nie widok

Struktura katalogu w InteliJ
main_
|
java
webapp_
|
WEB-INF_
|
jsp_ (widoki)
dispacher-servlet.xml
web.xml

public class LoginController {


	private static final Logger LOGGER = LoggerFactory.getLogger(LoginController.class);


	@Autowired
   private UserService userService;


	

	

    @RequestMapping("/index")
    public String setupForm(Map<String, Object> map){
	User user = new User();
	map.put("user", user);
	map.put("userList", userService.getAllUser());
	return "user";
}

	@RequestMapping(value = "/user.do", method = RequestMethod.POST)
	public String doActions(@ModelAttribute User user, BindingResult result,@RequestParam String action, Map<String, Object> map  ){
		User userResuilt = new User();
		switch (action.toLowerCase()){
			case "add":
				userService.add(user);
				userResuilt = user;
				break;
			case "edit":
				userService.edit(user);
				userResuilt = user;
				break;
			case "delete":
				userService.delete(user.getUserId());
				userResuilt = new User();
				break;
			case "search":
			   	User searchedUser = userService.getUser(user.getUserId());
				userResuilt = searchedUser!=null ? searchedUser : new User();
				break;


		}
		map.put("user", userResuilt);
		map.put("userList", userService.getAllUser());
		return "user";
	}


}

spring.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/jdbc
        http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <context:component-scan base-package="com.xxx.xxx"/>

    <mvc:annotation-driven/>

    <mvc:resources mapping="/resources/**" location="/resources/"/>




    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>



    <bean id="dataSource"
          class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/xxx" />
        <property name="username" value="xxx" />
        <property name="password" value="xxx" />
        <property name="validationQuery" value="SELECT 1"/>
    </bean>



    <bean id="sessionFactory"
          class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

        <property name="dataSource" ref="dataSource" />
        <property name="packagesToScan" value="com.xxx.xxx.model"/>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <tx:annotation-driven transaction-manager="transactionManager"/>

    <bean id="userDAO" class="com.xxxx.xxx.dao.UserDAOImp"/>

    <bean id="userService"  class="com.xxx.xxx.service.UserServiceImp"/>


    </beans>


web.xml

    <servlet>
		<servlet-name>dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath:log4j.properties</param-value>
	</context-param>
2

Jaka jest annotacja na LoginController ?

0

@RestController
@RequestMapping("/")

1

Jaja sobie robisz, prawda? RestController nie zwróci ci przecież widoku tylko gołe dane! Tym sie różni od @Controller właśnie.

1
@RestControler

Tworzy Ci Rest Controller. Użyj:

@Controller
0

Dziękuje faktycznie, kompletnie nie pomyślałem.
Czy mogę jeszcze prosić o odpowiedź czemu wyświetla mi się ten błąd?

type Exception report

messageInternal Server Error

descriptionThe server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /WEB-INF/jsp/user.jsp(16,33) PWC6031: Unterminated <form:input tag
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.1 logs.

0

Ale masz przecież wszystko ładnie napisane, nawet plik i linię i tag, którego nie zamknąłeś.

1 użytkowników online, w tym zalogowanych: 0, gości: 1