2 wu453973171 wu453973171 于 2016.04.08 13:19 提问

spring MVC jsp页面获取参数 以对象的方式

jsp里面的body部分

  <h1>用户信息添加2</h1>
  <form action="user/add3.do"  method="post">
        编号:<input type="text"  name="userId"/><br/>
        姓名:<input type="text"  name="userName"/><br/>
        性别:<input type="text"  name="userSex"/><br/>
        <input type="submit"  value="提交"/>
  </form>

Controller部分

@RequestMapping("/user")
public class UserController {

 @RequestMapping("/add3.do" )
 public String add3(UserInfo user)
 {
      System.out.println(user);
      return "user_add3";
 }

}

UserInfo 类

 import java.util.Arrays;

public class UserInfo {
    private Integer userId;
    private String  userName;
    private String  userSex;
    private String[] userXq;
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserSex() {
        return userSex;
    }
    public void setUserSex(String userSex) {
        this.userSex = userSex;
    }
    public String[] getUserXq() {
        return userXq;
    }
    public void setUserXq(String[] userXq) {
        this.userXq = userXq;
    }
    @Override
    public String toString() {
        return "UserInfo [userId=" + userId + ", userName=" + userName
                + ", userSex=" + userSex + ", userXq="
                + Arrays.toString(userXq) + "]";
    }

}

已经有utf-8 编码转换

 package com.liu.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class UTFFilter
 */
@WebFilter("/*")
public class UTFFilter implements Filter {

    /**
     * Default constructor. 
     */
    public UTFFilter() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Filter#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }

    /**
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        // place your code here
        request.setCharacterEncoding("utf-8");
        // pass the request along the filter chain
        chain.doFilter(request, response);
    }

    /**
     * @see Filter#init(FilterConfig)
     */
    public void init(FilterConfig fConfig) throws ServletException {
        // TODO Auto-generated method stub
    }

}

出来的界面 是3个 输入框 如果 我只在第一个输入框里输入了汉字 就报错

The request sent by the client was syntactically incorrect.


只在第一个输入框里输入的只是数字的话就不报错
其他情况都不报错
求原因

2个回答

haikuokuangtu
haikuokuangtu   2016.04.08 13:26
已采纳

你第一个输入框是编号,你输入中文最后肯定会报错,因为中文属于字符串类型,而你的编号是整型的。

HLhakey
HLhakey   2016.04.08 14:07

图片说明
你的UserId是整型的,输入汉字为 字符串型 肯定报错啊
还有,一般id这种东西怎么有表单填写的?人为的会有重复啊,以后数据多了,够麻烦的,没这么搞得,一般都是代码生成。或者你用整型也是数据库中自增的,反正一般
不会人为定义id这种东西。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SpringMVC获取页面参数的三种方法
关于SpringMVC获取页面参数的方法,以下示例 jsp页面,点击submi提交请求到后台,后台需要获取页面“用户名”与“密码”输入框中的值 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> Insert title here 登陆页
SpringMVC jsp前台获取参数的方式 EL表达式
JAVA: request.setAttribute("msg", "1234"); session.setAttribute("msg2", "1234"); JSP: ${requestScope.msg} ${sessionScope.msg2} JAVA: ModelAndView  ModelMap  Model里添加的参数 JSP: 直接用${参数名}
SpringMVC获取页面参数的五种方法
SpringMVC获取页面参数的五种方法第一种:使用HttpServletRequest作为SpringMVC 控制器里面方法的参数,同Servlet中使用Request对象获取页面参数的方法一样@Controller @RequestMapping("/user") public class UserController { /** * 使用HttpServletR
Spring MVC后台控制层获取参数方式详解
Spring MVC的controller层获取jsp页面参数方式有两种,一种为使用@RequestParam,一种为使用request.getParameter(”param”)来获取 具体使用方法如下所示:基本使用 @RequestParam Html代码:<form action="/testRequestParam" method="post"> <input type=
springmvc请求参数获取的几种方法(转载)
转载地址:https://www.cnblogs.com/xiaoxi/p/5695783.html 1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。 /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username *
SpringMVC获取参数的方法(第二周)
1.直接写在方法的形参中(只用于get方式提交)@RequestMapping("login") public void login(String username,String password){}2.通过HttpServletRequest接收(get,post都可以)@RequestMapping("login") public void login(HttpServletR
java表现层框架struts2和SpringMVC获取页面参数的方式
struts2获取页面参数的方式。 转自:http://www.cnblogs.com/o-andy-o/archive/2012/08/12/2635537.html 1. 用Action的属性: 在action 里面定义要接收的参数,并提供相应的setter,getter,和提交参数的名称一致,并不用做数据类型的转换。 相应提交方式可以用get 和post,如:testActi
Spring MVC控制层传递对象后在JSP页面中的取值方法
Spring MVC控制层传递对象后在JSP页面中的取值方法
jsp页面向springmvc控制器的参数传递
springmvc以jsp中的name为参照对象获取其value springmvc控制器接收jsp页面中的数据可以随便定义,虽然页面传过来的是String类型,但是可以直接写出Long,int或其他,这里应该是它会自动进行强转。 当控制器接收参数的时候,注意这里是一开始先进入控制器,然后再到页面,再到控制器,所以这里一开始接收的参数是没有任何值的,对于String判空很容易,但如果是in
Spring MVC PUT 表单参数获取
默认的Spring MVC不支持put提交表单参数 加入以下配置在web.xml即可解决 HttpMethodFilter org.springframework.web.filter.HttpPutFormContentFilter HttpMethodFilter /*