博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC学习总结(二) --springMVC表单处理、标签库、静态文件处理
阅读量:4695 次
发布时间:2019-06-09

本文共 8098 字,大约阅读时间需要 26 分钟。

根据 搭建项目

一、表单处理

  1.创建两个java类 Student.java, StudentController.java。

  2.在jsp字文件夹下面创建两个视图文件student.jsp、result.jsp。

项目目录结构如下:

 

 

实体类Student.java

package com.myl.controller.form;/** *  * @author myl * @date      2018年5月19日   上午10:17:52 */public class Student {        private int id;    private String name;    private int age;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";    }    }

控制层 StudentController.java

package com.myl.controller.form;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;/** * 控制层 * @author myl * @date      2018年5月19日   上午10:18:00 */@Controllerpublic class StudentController {        @RequestMapping(value="/student", method=RequestMethod.GET)    public ModelAndView student() {        return new ModelAndView("student", "command", new Student());    }        @RequestMapping(value="/addStudent", method=RequestMethod.POST)    public String addStudent(@ModelAttribute("springmvc")Student student, ModelMap model) {        model.addAttribute("id", student.getId());        model.addAttribute("name", student.getName());        model.addAttribute("age", student.getAge());        return "result";    }}

这里的第一个服务方法student(),我们已经在ModelAndView对象中传递了一个名为“command”的空对象,因为如果在JSP中使用<form:form>标签,spring框架需要一个名为“command的对象文件。 所以当调用student()方法时,它返回student.jsp视图。

第二个服务方法addStudent()将在 URLspringmvc/addStudent上的POST方法提交时调用。将根据提交的信息准备模型对象。最后,将从服务方法返回“result”视图,这将最终渲染result.jsp视图。

 

web.xml

springMVC Application
springmvc
org.springframework.web.servlet.DispatcherServlet
1
springmvc
/

 

springmvc-servlet.xml

表单 student.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
Insert title here

Student Info

编号:
姓名:
年龄:

返回结果result.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>
Insert title here

提交的学生信息如下

编号: ${id}
名称: ${name}
年龄: ${age}

 

访问student

提交返回结果

二、表单标签库

在 jsp 中添加下面配置即可用表单标签

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

 

 

,如果jsp中使用<form:form >标签,spring框架需要一个名为  “command” 的对象文件 (如上所述)

2.1 、<form:form> 表单   

    属性:method   提交类型  如: GET、POST

2.2、文本框

  <form:input /> 标签渲染一个HTML 文档 如

  它将生成以下HTML内容

2.3、密码框

  <form:password path="password" /> 来呈现HTML密码框

  它将生成以下HTML内容

2.4、文本域

  <form:textarea  />来呈现HTNL文本域

  他将生成以下HTML内容

2.5、复选框 

  <form:checkbox />标签来呈现HTNL复选框

  它将呈现以下HTML内容

2.6、复选框(多选)

   <form:checkboxs />标签来呈现HTNL复选框(多选)

   webFrameworkList是 List列表
// 在controller层添加该标签的代码,则可吧list传到jsp视图层   @ModelAttribute("webFrameworkList")   public List
getWebFrameworkList() { List
webFrameworkList = new ArrayList
(); webFrameworkList.add("spring"); webFrameworkList.add("springmvc"); webFrameworkList.add("Struts 2"); webFrameworkList.add("java"); return webFrameworkList; }
   它将呈现以下HTML内容

2.7、单选按钮

  <form:rediobutton />来呈现HTML单选按钮

  它将呈现以下HTML内容

2.8、多项单选按钮

  <form:rediobuttons />标签来呈现HTNL多项单选按钮

numbersList表示list列表
//在controller层 添加该注解  即可把该列表传到 jsp 视图  @ModelAttribute("numbersList")   public List
getNumbersList() { List
numbersList = new ArrayList
(); numbersList.add("1"); numbersList.add("2"); numbersList.add("3"); numbersList.add("4"); return numbersList; }}

2.9、下拉框

  这里使用<form:select />,<form:option />,<form:options /> 标签来呈现HTML下拉框

 countryList表示list列表

//在controller层天机该标签则可把countryList传到jsp视图层   @ModelAttribute("countryList")   public Map
getCountryList() { Map
countryList = new HashMap
(); countryList.put("US", "US"); countryList.put("CH", "China"); countryList.put("HK", "HK"); countryList.put("MYL", "MYL"); return countryList; }

  它将呈现以下HTML内容

2.10、列表多选框

  这里使用<form:select />及其属性 multiple=true 标签来程序按HTML列表多选框

  skillsList 表示list列表

//在congtroller层添加下面标签则可把list列表传到 jsp 视图层   @ModelAttribute("skillsList")   public Map
getSkillsList() { Map
skillList = new HashMap
(); skillList.put("Hibernate", "Hibernate"); skillList.put("Spring", "Spring"); skillList.put("Apache Hadoop", "Apache Hadoop"); skillList.put("Struts", "Struts"); return skillList; }

  它将呈现以下HTML内容

2.11、隐藏字段域

  <form:hidden />标签来呈现HTML的隐藏字段域

它将呈现以下HTML内容

2.12、错误处理

  <form:errors /> 标签来呈现HTML错误处理

  它将呈现所有输入验证的错误消息

  使用带有path ="name"<form:errors />标记来渲染name字段的错误消息。

  它将呈现名称字段验证的错误消息。

 

------------------------------------------------------------------

三、静态文件处理

这里介绍两种访问静态资源的方式:

  方法一、在web.xml中配置 

  
default
*.jpg
如图所示 访问静态的 jpg文件、css文件、js文件(我用jpg作为例子)
springMVC Application
springmvc
org.springframework.web.servlet.DispatcherServlet
1
springmvc
/
default
*.jpg
default
*.js
default
*.css

要配置多个,每种文件配置一个。

要写在DispatcherServlet的前面, 让defaultServlet先拦截,这个就不会进入Spring了,我想性能是最好的吧。

 

  方法二、在spring3.0.4以后版本提供了mvc:resources

  在springmvc配置文件中配置

  

  注:<mvc:annotation-driven/> <mvc:resources... 必须同时加上

    location属性必须指定一个或多个有效的资源目录位置 

完整springmvc-servlet.xml

 

jsp文件中访问就可以了

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>
Insert title here

提交的学生信息如下

编号: ${id}
名称: ${name}
年龄: ${age}

 

结果

 

以上就是表单处理和静态文件处理。

 

转载于:https://www.cnblogs.com/maoyali/p/9059744.html

你可能感兴趣的文章
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同!
查看>>
导入properties时的坑
查看>>
配置NRPE的通讯
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>