Spring MVC初始配置与使用

目录

一、创建webapp文件夹

web.xml配置

二、创建配置.xml文件

三、Controller类的创建

1.类中的方法使用@RequestMapping进行注解

(1).value参数:

(2).method参数

(3).params参数

(4).headers参数

2.使用@RequestParam注解(请求参数)

3.依靠控制器方法上形参名接受参数(请求参数)

4.使用Bean类接受参数


一、创建webapp文件夹

文件目录包括templates,web.xml。

web.xml配置

<!--    前端控制器-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!--        设置.xml资源位置        -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--        启动服务器时加载        -->
        <load-on-startup>0</load-on-startup>
    </servlet>

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

二、创建配置.xml文件

<!--扫描controller包下的类-->
<context:component-scan base-package="com.powernode.controller"></context:component-scan>

    <!--视图解析器-->
    <bean id="thymeleafViewResolver" class="org.thymeleaf.spring6.view.ThymeleafViewResolver">
        <!--作用于视图渲染的过程中,可以设置视图渲染后输出时采用的编码字符集-->
        <property name="characterEncoding" value="UTF-8"/>
        <!--如果配置多个视图解析器,它来决定优先使用哪个视图解析器,它的值越小优先级越高-->
        <property name="order" value="1"/>
        <!--当 ThymeleafViewResolver 渲染模板时,会使用该模板引擎来解析、编译和渲染模板-->
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring6.SpringTemplateEngine">
                <!--用于指定 Thymeleaf 模板引擎使用的模板解析器。模板解析器负责根据模板位置、模板资源名称、文件编码等信息,加载模板并对其进行解析-->
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver">
                        <!--设置模板文件的位置(前缀)-->
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <!--设置模板文件后缀(后缀),Thymeleaf文件扩展名不一定是html,也可以是其他,例如txt,大部分都是html-->
                        <property name="suffix" value=".html"/>
                        <!--设置模板类型,例如:HTML,TEXT,JAVASCRIPT,CSS等-->
                        <property name="templateMode" value="HTML"/>
                        <!--用于模板文件在读取和解析过程中采用的编码字符集-->
                        <property name="characterEncoding" value="UTF-8"/>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>

三、Controller类的创建

1.类中的方法使用@RequestMapping进行注解

(1).value参数:

@RequestMapping(value = "/example")
    public String index() {
//        返回逻辑视图
        return "example";
    }

@RequestMapping可以传递数组参数 :@RequestMapping(value = {"/example1","/example"})

可使用Ant风格进行模糊匹配,其中通配符包括

?:代表任意一个字符

*:代表0到N个任意字符

**:代表0到N个任意字符,并且路径中可以出现/

使用RESTFul参数传递方法示例

  @RequestMapping(value = "/login/{username}/{password}")
    public String login(
            @PathVariable("username")
            String username,
            @PathVariable("password")
            String password){
        if(username.equals("admin") && password.equals("123456")){return "login";}
        return "shop";
    }

(2).method参数

通过该属性可以限制前端发送的请求方式,若是前端发送的请求方式与后端接收方式不同,则会出现405错误。

@RequestMapping(value="/login",method=RequestMethod.POST)

请求方式可以直接使用

@GetMapping

@PostMapping 

(3).params参数

@RequestMapping(value="testParams",params={"username","password"})
public String testParams(){
    return "ok";
}

当RequestMapping注解中添加了params,则表示有添加了新的约束条件。
当请求路径时/testParams,并且请求携带的参数有username和password的时候,才能映射成功!

关于thymeleaf中如何发送请求时携带数据:

<a th:href ="/testParams"?name=value&name=value></a>
<a th:href ="/testParams"?(name='admin',password='1234')></a>

(4).headers参数

数组,用来设置请求头的映射。

@RequestMapping(value="/login",headers={"Referer","Host"})
public String testHeaders(){
    return "ok";
}

当请求路径时/login,并且请求投中包含Referer,也包含Host的时候,映射成功。

2.使用@RequestParam注解(请求参数)

@RequestParam注解中的属性:

                value属性与name属性:传递参数

                required属性:用来设置参数是否为必须。默认值为true,默认情况下参数是必须传递过来,若是前端没有提交该参数。报错:400错误。  类似与@RequestMapping中params属性。

                defaultValue属性:通过设置defaultValue属性可以给参数赋默认值。

3.依靠控制器方法上形参名接受参数(请求参数)

如果 请求参数名 与 控制器方法上的形参名 保持一致,那么@RequestParam注解可以省略。

若是使用的为Spring6+版本,则需要在pom.xml文件中添加如下的编译配置。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.12.1</version>
            <configuration>
                <source>21</source>
                <target>21</target>
                <compilerArgs>
                    <arg>-parameters</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

4.使用Bean类接受参数

要求:Bean类中的属性名需要与请求参数名相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值