发表于: 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页面。。也许是一个难关


遇到的问题:无


收获:感觉越来越快接近新大陆了


返回列表 返回列表
评论

    分享到