我是靠谱客的博主 生动外套,最近开发中收集的这篇文章主要介绍SpringMVC和基本数据类型,Pojo对象,集合的绑定,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

解决springMVC不能访问.html文件

使用springMVC框架后,正常启动tomcat,但是访问不到webapp下的html文件,解决方案

在这里插入图片描述

在这里插入图片描述

将/改成*.do,代表以后前端控制器只会拦截以.do为后缀的请求.

然后重新启动tomcat,就可以访问到 html文件了

    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

在这里插入图片描述

基本数据类型绑定

在这里插入图片描述
springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">


    <!-- 扫描组件,将加上@Controller注解的类作为SpringMVC的控制层 -->
    <context:component-scan base-package="com.deng.controller"></context:component-scan>
    <!--
        配置视图解析器
        作用:将prefix + 视图名称 + suffix 确定最终要跳转的页面
       -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>

web.xml

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <!--servlet: DispatcherServlet-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

<!--    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
        &lt;!&ndash;  <url-pattern>*.do</url-pattern>&ndash;&gt;
    </servlet-mapping>-->

    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

</web-app>

user.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>

<form action="/springmvc/show20.do" >
    name:<input type="text" name="name" /><br />
    age:<input type="text" name="age" /><br />
    isMarry:是<input type="radio" value="true" name="marry"/><input type="radio"  value="false" name="marry"/><br />
    income:<input type="text" name="income" /><br />
    interests:<input type="checkbox" name="interests" value="bb" />basketball
    <input type="checkbox" name="interests" value="fb" />football
    <input type="checkbox" name="interests" value="vb" />vollyball<br />
    <input type="submit" value="提交" />
</form>

</body>
</html>

TestController4.java

package com.deng.controller;

import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;

import java.util.Arrays;

@Controller
public class TestController4 {
    @RequestMapping(value = "show20")
    @ResponseStatus(value = HttpStatus.OK)
    public void test20(
            @RequestParam("name") String name,
            @RequestParam("age") Integer age,
            @RequestParam(value = "marry", defaultValue = "false") boolean isMarry,
            @RequestParam("income") Double income,
            @RequestParam("interests") String[] interests) {

        StringBuffer sb = new StringBuffer();
        sb.append("name : " + name + "rn");
        sb.append("age : " + age + "rn");
        sb.append("isMarry : " + isMarry + "rn");
        sb.append("income : " + income + "rn");
        sb.append("interests : " + Arrays.toString(interests) + "rn");

        System.out.println("sb = " + sb);
    }
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Pojo对象绑定

user1.html→show21.do→hello4.jsp

在这里插入图片描述

在这里插入图片描述
提交后跳转到jsp页面,地址栏不会显示xxx.jsp

在这里插入图片描述
TestController5.java

package com.deng.controller;

import com.deng.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController5 {
    @RequestMapping(value="show21")
    public String test21(Model model, User user){
/*      user.setName("zhangsan");
        user.setAge(12);
        user.setMarry(false);
        user.setIncome(5000D);
        user.setInterests(new String[]{"vv", "bb", "cc"});*/

        model.addAttribute("msg12","springmvc用pojo传递参数 "+user);
        return "hello4";
    }
}

User.java

package com.deng.pojo;

import java.util.Arrays;

public class User {
    private Integer id;
    private String userName;
    private String name;
    private Integer age;
    private boolean isMarry;
    private Double income;
    private String[] interests;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }



    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public boolean isMarry() {
        return isMarry;
    }

    public void setMarry(boolean isMarry) {
        this.isMarry = isMarry;
    }

    public Double getIncome() {
        return income;
    }

    public void setIncome(Double income) {
        this.income = income;
    }

    public String[] getInterests() {
        return interests;
    }

    public void setInterests(String[] interests) {
        this.interests = interests;
    }

    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + ", isMarry=" + isMarry
                + ", income=" + income + ", interests="
                + Arrays.toString(interests) + "]";
    }


}

hello4.jsp

<%--
  Created by IntelliJ IDEA.
  User: U100926
  Date: 2022/09/01
  Time: 15:20
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@ page isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<span style="font-size:30px; color:darkgreen;">${msg12}</span>
</body>
</html>

user1.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>

<form action="/springmvc/show21.do" >
    name:<input type="text" name="name" /><br />
    age:<input type="text" name="age" /><br />
    isMarry:是<input type="radio" value="true" name="marry"/><input type="radio"  value="false" name="marry"/><br />
    income:<input type="text" name="income" /><br />
    interests:<input type="checkbox" name="interests" value="bb" />basketball
    <input type="checkbox" name="interests" value="fb" />football
    <input type="checkbox" name="interests" value="vb" />volleyball<br />
    <input type="submit" value="提交" />
</form>
</body>
</html>

集合绑定

user2.html→show22.do→hello5.jsp
在这里插入图片描述
提交后跳转到jsp页面,地址栏不会显示xxx.jsp

在这里插入图片描述

反例

在这里插入图片描述
在这里插入图片描述

如果方法需要接受的list集合,不能够直接在方法中形参中使用List
List的绑定,需要将List对象包装到一个类中才能绑定
要求:表单中input标签的name的值和集合中元素的属性名一致。

TestController6.java

package com.deng.controller;

import com.deng.pojo.User;
import com.deng.pojo.UserVo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Controller
public class TestController6 {
    @RequestMapping(value = "show22")
    public String test22(Model model, UserVo userVo) {
/*      User u1 = new User();
        u1.setName("zhangsan1");
        u1.setAge(12);
        u1.setMarry(false);
        u1.setIncome(5000D);
        u1.setInterests(new String[]{"vv", "bb", "cc"});

        User u2 = new User();
        u2.setName("zhangsan2");
        u2.setAge(13);
        u2.setMarry(true);
        u2.setIncome(6000D);
        u2.setInterests(new String[]{"vv", "cc"});

        List<User> userList = new ArrayList<>();
        userList.add(u1);
        userList.add(u2);

        userVo.setUsers(userList);*/

        model.addAttribute("msg13", "springmvc用pojo集合封装页面数据 " + userVo.getUsers());

        return "hello5";
    }
}

UserVo.java

package com.deng.pojo;

import java.util.List;

public class UserVo {
    private List<User> users;

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

}

hello5.jsp

<%--
  Created by IntelliJ IDEA.
  User: U100926
  Date: 2022/09/01
  Time: 16:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<span style="font-size:30px; color:darkgreen;">${msg13}</span>
</body>
</html>

user2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/springmvc/show22.do">

    name:<input type="text" name="users[0].name"/><br/>
    age:<input type="text" name="users[0].age"/><br/>
    isMarry:是<input type="radio" value="true" name="users[0].marry"/><input type="radio" value="false" name="users[0].marry"/><br/>
    income:<input type="text" name="users[0].income"/><br/>
    interests:<input type="checkbox" name="users[0].interests" value="bb"/>basketball
    <input type="checkbox" name="users[0].interests" value="fb"/>football
    <input type="checkbox" name="users[0].interests" value="vb"/>volleyball<br/><br/><br/><br/>

    name:<input type="text" name="users[1].name"/><br/>
    age:<input type="text" name="users[1].age"/><br/>
    isMarry:是<input type="radio" value="true" name="users[1].marry"/><input type="radio" value="false" name="users[1].marry"/><br/>
    income:<input type="text" name="users[1].income"/><br/>
    interests:<input type="checkbox" name="users[1].interests" value="bb"/>basketball
    <input type="checkbox" name="users[1].interests" value="fb"/>football
    <input type="checkbox" name="users[1].interests" value="vb"/>volleyball<br/>

    <input type="submit" value="提交"/>

</form >

</body>
</html>

web.xml

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <!--servlet: DispatcherServlet-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

<!--    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
        &lt;!&ndash;  <url-pattern>*.do</url-pattern>&ndash;&gt;
    </servlet-mapping>-->

    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

</web-app>

最后

以上就是生动外套为你收集整理的SpringMVC和基本数据类型,Pojo对象,集合的绑定的全部内容,希望文章能够帮你解决SpringMVC和基本数据类型,Pojo对象,集合的绑定所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部