概述
解决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>
<!– <url-pattern>*.do</url-pattern>–>
</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>
<!– <url-pattern>*.do</url-pattern>–>
</servlet-mapping>-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
最后
以上就是生动外套为你收集整理的SpringMVC和基本数据类型,Pojo对象,集合的绑定的全部内容,希望文章能够帮你解决SpringMVC和基本数据类型,Pojo对象,集合的绑定所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复