在解决问题之前,我要说明一下jsp页面上填入信息,一个用户的信息比如用户的名字,用户的电话,用户的手机等等,在这个jsp页面上填好信息后,转到有个action处理这个信息。原理是什么?

在jsp页面上有一行代码,form action="${pageContext.request.contextPath}/user/register.action"那么jsp页面提交的时候机会提交到这个action。然后根据这个定位到

public String registerMethod(Bean bean,Model model),这里有一个参数,bean。
bean里面又封装了user类和admin类。所以user和admin才是里面的基础元素。 jsp上面的页面就会根据这个bean的结构,把jsp的内容自动写入到这个bean中。但是切记<input type="text" name="admin.username"
这里的name要和实体类的名字一模一样,这里的admin就是bean里面的一个属性username是admin里面的属性。

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

前一篇文章,讲了在业务方法中多个模型收集参数有一个问题,现在这篇文章就来解决一上一篇文章的问题。

User和Admin是两个不同的实体类。我们解决问题的方法是:

如果多个模型中有相同的属性时,可以用user.username或admin.username来收集客户端参数。就是用一个新的模型将User和Admin再封装一次。

给出案例的结构图:

aaarticlea/png;base64,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" alt="" />

上面结构图中用到了Admin.java;Bean.java;UserAction.java;springmvc_008.xml;spring.xml;web.xml;person.xml;

下面给出具体的案例代码:我只给出person.jsp的代码以及UserAction(控制器).java。

person.jsp:注意:<input type="text" name="user.username" value="${user.username }" /></td>

value="${user.username }是为了回显数据,不写也没事。

name的写法都是这么写的。因为bean把uesr和admin又包了一层,相当于user.name和admin.name才是最基础的元素。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<hr>
普通用户
<form action="${pageContext.request.contextPath}/user/register.action" method="post">
<table border="2" align="center">
<tr>
<th>姓名</th>
<td> <input type="text" name="user.username" value="${user.username }" /></td>
</tr>
<tr>
<th>薪水</th>
<td> <input type="text"
name="user.salary"
value="${!empty user.salary?user.salary:'2012'}" /> </td>
</tr>
<tr>
<th>入职时间</th>
<!--
${!empty user.hiredate?user.hiredate:'2015-4-3 12:12:12'}
表示user.hiredate不是为空的话就给他赋user.hiredate的值
如果是空的就给他赋'2015-4-3 12:12:12'这个值。
-->
<td> <input
type="text"
name="user.hiredate" value="${!empty user.hiredate?user.hiredate:'2015-4-3 12:12:12'} "/></td>
</tr> <tr>
<td>
<input type="submit" value="普通用户注册">
</td>
</tr>
</table> </form>
</hr> <hr>
管理员用户
<form action="${pageContext.request.contextPath}/user/register.action" method="post">
<table border="2" align="center">
<tr>
<th>姓名</th>
<td> <input type="text" name="admin.username" value="${admin.username }" /></td>
</tr> <tr>
<th>薪水</th>
<td> <input type="text"
name="admin.salary"
value="${admin.salary }" />
</td>
</tr>
<tr>
<th>入职时间</th>
<!--
${!empty user.hiredate?user.hiredate:'2015-4-3 12:12:12'}
表示user.hiredate不是为空的话就给他赋user.hiredate的值
如果是空的就给他赋'2015-4-3 12:12:12'这个值。
-->
<td> <input
type="text"
name="admin.hiredate" value="${admin.hiredate }"/></td>
</tr> <tr>
<td>
<input type="submit" value="管理员注册">
</td>
</tr>
</table>
</form>
</hr>
</body>
</html>

UserAction.java的代码:

package com.guigu.shen.Action8;

import java.text.SimpleDateFormat;
import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
*
*
请求路径可以拆分为:根模块的名字+分模块的名字
就是相当于当访问http://127.0.0.1:8080:项目名/user/register时就会进入到
registerMethod方法。
*/
@Controller
@RequestMapping(value="/user")//根模块的请求名字
public class UserAction {
/*
* 员工注册
*
*/
@RequestMapping(method=RequestMethod.POST,value="/register")//分模块的请求名字
/*
采用模型的方式(User)来收集从页面传来的参数。
方法里面的参数user和以前的参数一样会被用反射的方式去赋值。
bean类把User和Admin又封装了一层。
*/
public String registerMethod(Bean bean,Model model)
{
//打印出user里面的信息
System.out.println("员工的信息是"+bean.getUser());
//打印出Admin的信息
System.out.println("管理员的信息"+bean.getAdmin());
//将user和admin绑定到model对象中去。
model.addAttribute("user", bean.getUser());
model.addAttribute("admin", bean.getAdmin());
//model.addAttribute("bean", bean);
//数据回显到person.jsp页面
return "/person.jsp";
} /**
* 自定义类型转换器
* 就是说当Date类型的数据不能得到时,会自动查找@InitBinder注解过的方法
*
*/
@InitBinder
protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
} }

bean类代码:

package com.guigu.shen.Action8;

public class Bean {
private User user;
private Admin admin;
/**
* @return the user
*/
public User getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(User user) {
this.user = user;
}
/**
* @return the admin
*/
public Admin getAdmin() {
return admin;
}
/**
* @param admin the admin to set
*/
public void setAdmin(Admin admin) {
this.admin = admin;
} }

结果:测试一切正常。

17SpringMvc_在业务控制方法中写入包装User的模型来收集参数——解决问题的更多相关文章

  1. 在业务控制方法中写入包装User的模型来收集参数

    可以在业务控制方法中书写0个或多个模型来收集客户端的参数 1)  如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数 2)  用一个新的模型将User和Adm ...

  2. 在业务控制方法中写入Request,Response等传统web参数

    可以在业务控制方法中书写传统web参数,这种方式我们不提倡,耦合了 @Controller @RequestMapping(value="/user") public class ...

  3. 14SpringMvc_在业务控制方法中写入HttpServletRequest,HttpServletResponse等传统web参数(这个知识点知道就好了,不推荐这么去做)

    这篇文章解决的问题是怎么在业务方法里面引入我们熟悉的HttpServletRequest和HttpServletRespon? 答案:这种引入传统的web参数的做法不推荐去做,因为这么做会实行高度耦合 ...

  4. 15SpringMvc_在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型

    之前第12篇文章中提到过在业务控制方法中写入普通变量收集参数的方式,也提到了这种凡方式的弊端(参数很多怎么办),所以这篇文章讲的是在业务控制方法中写入模型变量来收集参数.本文的案例实现的功能是,在注册 ...

  5. 在业务控制方法中写入User,Admin多个模型收集参数

    1)  可以在业务控制方法中书写1个模型来收集客户端的参数 2)  模型中的属性名必须和客户端参数名一一对应 3)  这里说的模型不是Model对象,Model是向视图中封装的数据 @Controll ...

  6. 16SpringMvc_在业务控制方法中写入User,Admin多个模型收集参数——引出问题

    上面文章时普通的业务那个方法中收集一个实体类,这篇文章想收集两个实体类. 文本要做的是:在person.jsp页面上,有两个表单.分别是普通用户和管理员用户的表单(普通用户的表单和管理员用户的表单里面 ...

  7. 12SpringMvc_在业务控制方法中写入普通变量收集参数

    这篇文章讲的是jsp页面不是会传一些参数到Action中,那么Action怎么去接受这个数据呢? 方案: 案例结构如下:

  8. 在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型

    1)  在默认情况下,springmvc不能将String类型转成java.util.Date类型,所有我们只能在Action 中自定义类型转换器 <form action="${pa ...

  9. 19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数

    本文要实现的功能是给一张表单:

随机推荐

  1. 软件快速开发平台 JEPF

    JEPF新一代软件快速开发平台(Java Elephant Platform)是一款优秀的平台产品,它本着灵活.快捷开发.高性能.高协作性.高稳定性.高可用性.人性化的操作体验为设计宗旨历经2年研发成 ...

  2. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q104-Q106)

    Question 104You plan to create a workflow that has the following three activities: CreateTask OnTask ...

  3. NSMutable sort排序

    Compare method Either you implement a compare-method for your object: - (NSComparisonResult)compare: ...

  4. OC--第一个程序

    #import <Foundation/Foundation.h> //导入foundation.h文件 // C语言函数声明 void MyFun(BOOL bol); int main ...

  5. Silverlight项目笔记5:Oracle归档模式引起的异常&&表格控件绑定按钮

    1.Oracle归档模式产生日志文件引起数据库异常 连接数据库失败,提示监听错误,各种检查监听配置文件,删除再添加监听,无果. sqlplus下重启数据库数据库依然无果,期间碰到多个错误提示: ORA ...

  6. new与malloc的区别

    看起来,它们的不同只是new比malloc用起来更方便而已.仅仅是这样吗?不是吗? 1 来源不同: 1)new/delete是C++中的操作符,而malloc/free是C中的标准库函数,需要库文件支 ...

  7. WebService学习总结(二)——WebService相关概念介绍

    一.WebService是什么? 1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 2. 一个跨语言.跨平台的规范(抽象) 3. 多个跨平台.跨语言的应用间通信整合的方案(实际 ...

  8. 多线程--毕向东java基础教程视频学习笔记

    目录 1.多线程运行的安全问题 2.多线程同步代码块 3.同步方法的锁是this 4.静态同步方法的锁是Class对象 5.单例设计模式(面试中的考点) 6.死锁(一个发生死锁的例子) 多线程运行的安 ...

  9. Effective Java 27 Favor generic methods

    Static utility methods are particularly good candidates for generification. The type parameter list, ...

  10. MongoDB学习笔记——集合管理

    创建集合 使用db.createCollection(name, options) 方法创建集合 name 所创建的集合名称必选! options 可选.指定有关内存大小及索引的选项 db.creat ...