发表于: 2018-05-20 17:58:13
1 1399
日期:5月20号
今天完成的事情:
写一个springMVC的表单处理。
项目结构:
今天把日志加了进来;
然后修改了一下web.xml,把web.xml里上下文servlet.xml的加载改成通用的加载,这样的话classpath下spring文件夹里面以.xml结尾的文件都会加载进去,就不使用springMVC默认的/WEB-INF/${servlet-name}-servlet.xml去加载上下文
<servlet>
<servlet-name>HelloWeb</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWeb</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
控制器里面create_at和update_at正在考虑如何实现自动生成,而不需要在添加用户时候手动添加,所以先注释掉;
第一个方法addUser是添加用户,method定义可以用GET方法来访问他;
第二个方法user是显示刚刚添加的用户,method定义可以用POST方法来访问他,控制器如下:
package com.controller;
import com.pojo.User;
import org.springframework.stereotype.Controller;
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;
import org.springframework.ui.ModelMap;
@Controller
@RequestMapping(value = "/path")
public class UserController {
@RequestMapping(value = "/addUser", method = RequestMethod.GET)
public ModelAndView addUser() {
return new ModelAndView("addUser", "command", new User());
}
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String user(@ModelAttribute("SpringWeb")User user, ModelMap model) {
model.addAttribute("id", user.getId());
model.addAttribute("name", user.getName());
model.addAttribute("number", user.getNumber());
// model.addAttribute("create_at", user.getCreate_at());
// model.addAttribute("update_at", user.getUpdate_at());
return "result";
}
}
addUser.jsp文件,这里定义了一个POST方法,然后写上URL,访问上面控制器里面定义的user,这时候的目的就是在添加完用户之后能显示出用户信息;
<%@ page contentType="text/html; charset=UTF-8" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表单处理</title>
</head>
<body>
<h2>添加用户:</h2>
<form:form method="POST" action="/path/user">
<table>
<tr>
<td><form:label path="id">编号:</form:label></td>
<td><form:input path="id" /></td>
</tr>
<tr>
<td><form:label path="name">姓名:</form:label></td>
<td><form:input path="name" /></td>
</tr>
<tr>
<td><form:label path="number">学号:</form:label></td>
<td><form:input path="number" /></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交表单"/>
</td>
</tr>
</table>
</form:form>
</body>
</html>
然后是result.jsp,将刚刚添加的用户信息显示出来:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表单处理</title>
</head>
<body>
<h2>提交的用户信息如下:</h2>
<table>
<tr>
<td>编号:</td>
<td>${id}</td>
</tr>
<tr>
<td>姓名:</td>
<td>${name}</td>
</tr>
<tr>
<td>学号:</td>
<td>${number}</td>
</tr></table>
</body>
</html>
因为在addUser.jsp里定义了调用result.jsp的方法,所以添加完用户信息之后会跳转到显示信息页面,下面是结果:
提交表单之后,result.jsp中文乱码了:
这个时候百度查询jsp页面乱码问题,在web.xml里面添加下面代码:
<filter>
<filter-name>CharacterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
乱码解决:
明天的计划:现在差不多搞清楚了从POJO到jsp页面的映射,后面的问题就可以引申为从数据库到POJO,然后再到jsp页面。。也许是一个难关
遇到的问题:无
收获:感觉越来越快接近新大陆了
评论