Spring MVC, Hello!

В этой статье рассмотрим создание простого Spring MVC приложения, используя IntelliJ IDEA. Для этого будут использованы следующие технологии:

  • Spring 4.2.1
  • Maven
  • jdk 1.8
  • IntelliJ IDEA
  • Bootstrap 3



Создадим проект





Сразу загрузим bootstrap, в проекте создадим катлог resources и добавим туда содержимое нашего архива:


Чтобы побключить стили к странице проделаем следующее - откроем hello.jsp и добавим следующий код:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <spring:url value="/resources/css/bootstrap.min.css" var="bootstrapMin" />
    <link rel="stylesheet" href="${bootstrapMin}"/>
</head>
...


Чтобы все это работало, надо в spring config добавить распознование ресурсов (resources mapping) - откроем mvc-dispatcher-servlet.xml и добавим следующий код:

<mvc:resources mapping="/resources/**" location="/resources/"/>
<mvc:annotation-driven />

mvc-dispatcher-servlet.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:mvc="http://www.springframework.org/schema/mvc"
       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.xsd">

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

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <mvc:resources mapping="/resources/**" location="/resources/"/>
    <mvc:annotation-driven />

</beans>

Теперь займемся контроллером

HelloController.java
package com.springapp.mvc;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/")
public class HelloController {
    @RequestMapping(method = RequestMethod.GET)
    public String welcomeTitle(ModelMap model) {
        model.addAttribute("message", "Spring MVC DEMO, hello from ITISSUE");

        return "hello";
    }

    @RequestMapping(value = "/welcome/{name:.+}", method = RequestMethod.GET)
    public ModelAndView welcome(@PathVariable("name") String name) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("hello");
        modelAndView.addObject("welcomemsg", name);

        return modelAndView;
    }
}

И представление hello.jsp


<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <spring:url value="/resources/css/bootstrap.min.css" var="bootstrapMin" />
    <link rel="stylesheet" href="${bootstrapMin}"/>
</head>

<body>
<nav class="navbar navbar-default">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">Spring MVC DEMO, hello from ITISSUE</a>
        </div>
    </div>
</nav>
<div class="jumbotron">
    <div class="container">
        <h1>${title}</h1>
        <p>
            <c:if test="${not empty name}">
                Welcome ${name}
            </c:if>

            <c:if test="${empty name}">
                Welcome %username%
            </c:if>
        </p>
        <p>
            <a class="btn btn-primary btn-lg" href="#" role="button">More info</a>
        </p>
    </div>
</div>
<div class="container">
    <div class="row">
        <div class="col-sm-6 col-md-4">
            <div class="thumbnail">
                <div class="caption">
                    <h3>Thumbnail label</h3>
                    <p>111</p>
                    <p> <a href="#" class="btn btn-default" role="button">more..</a></p>
                </div>
            </div>
        </div>
        <div class="col-sm-6 col-md-4">
            <div class="thumbnail">
                <div class="caption">
                    <h3>Thumbnail label</h3>
                    <p>222</p>
                    <p> <a href="#" class="btn btn-default" role="button">more..</a></p>
                </div>
            </div>
        </div>
        <div class="col-sm-6 col-md-4">
            <div class="thumbnail">
                <div class="caption">
                    <h3>Thumbnail label</h3>
                    <p>333</p>
                    <p> <a href="#" class="btn btn-default" role="button">more..</a></p>
                </div>
            </div>
        </div>
    </div>

    <footer>
        <p>© itissue.blogspot.com 2015</p>
    </footer>
</div>

</body>
</html>

Запустим наш проект.

http://localhost:8080

http://localhost:8080/welcome/Alex

Комментариев нет:

Отправить комментарий