首先还在我们的框架的基础上建立文件
在domian下建立Account实体类
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping(value = "/account") public class Account { private String username; private String password; private Double money; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Double getMoney() { return money; } public void setMoney(Double money) { this.money = money; } @Override public String toString() { return "Account{" + "username=‘" + username + ‘\‘‘ + ", password=‘" + password + ‘\‘‘ + ", money=" + money + ‘}‘; } }
然后在controller中的 类中进行对象绑定
在controller中的ParamsController中的建立一个方法接受这个类对象
@RequestMapping(value = "/accout") public String save(Account account){ //把Account类中的信息都有封装进去 return "success"; }
然后传参的时候把对象的值得信息给传递进去
前端定义界面
<form action="/params/accout" method="post"> 姓名:<input name="username" type="text"/> <br/> //传递的是account类中的属性值 因为请求路径中需要的参数的封装进了account类中 也就是把参数给整合了 密码:<input name="password" type="text"/> <br/> 金额:<input name="money" type="text"/> <br/> <input type="submit" value="提交"/> </form>
这个时候请求是可以成功的 因为就相当于把需要的参数给整合在一起了
如果对象中再包含对象怎么做呢?
下面看
我们再建立一个对象类User
User:
public class User { private String username; private String u_password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getU_password() { return u_password; } public void setU_password(String u_password) { this.u_password = u_password; } @Override public String toString() { return "User{" + "username=‘" + username + ‘\‘‘ + ", u_password=‘" + u_password + ‘\‘‘ + ‘}‘; } }
然后把User这个对象传递到Account中
get set 和toString方法也要重新生成
然后再把Account当成参数的时候 那么久也需要对Account中封装的User类也要传递参数的
这个时候的前端传值要把那个对象的名字也加上
前端传值: 直接在值前面加上对象. 值
<form action="/params/accout" method="post">
<!--姓名:<input name="account.name" type="text"/> <br/>--> <!--这里不可以指定对象传值不然就会识别不到-->
姓名:<input name="name" type="text"/> <br/> 密码:<input name="password" type="text"/> <br/> 金额:<input name="money" type="text"/> <br/> User名字:<input name="user.username" /><br/> User密码:<input name="user.u_password"/><br/> <input type="submit" value="提交"/> </form>
如果我们输入中文的话 不会报错但是显示就是乱码的
因为web.xml控制着和前端交互的配置 我们就需要再这里配置下
web.xml中加入这些内容:
配置解决中文乱码的过滤器 <filter> <filter-name>characterEncodingFilter</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> </filter> <filter-mapping> <!--所有的请求都会经过这里--> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
再输入中文就不会乱码了
输入:
输出信息:
也可以在Controller中加 但是那样就要每个Controller都要加了
在controller中的RequestMapping中加入
produces = "text/html; charset=utf-8"
这样也可以对这个请求的返回都解决中文乱码 但是其他的Controller不解决 所以还是配置中加比较好
原文:https://www.cnblogs.com/zhaoyunlong/p/10903384.html