您的位置:首页 > 编程语言 > Java开发

SpringMVC的参数映射问题

2016-07-18 19:46 399 查看
SpringMVC的参数映射问题:(JSP页面或者说url路径的参数同控制器里的方法的参数的对应)

1)第一种映射方式:

   表单里的表单元素的name名字和控制器里的方法的形参名一致。

  比如界面中的数据:

<input type="text" value="" name="typeName"/>

  在控制器里方法的定义:

@RequestMapping(value="/addtype.action")

    public void addType(String typeName){

     System.out.println("传递过来的数据:"+typeName);

}

2)采取普通的java对象(POJO)传值的方式。

   jsp页面里的表单元素的name名字为java对象的字段名。

比如:用户的注册页面:

<tr>

                         <td>用户名:</td>

                         <td><input type="text" name="userName"/></td>

                     </tr>

                     <tr>

                         <td>密码:</td>

                         <td><input type="password" name="userPwd"/></td>

                     </tr>

                     <tr>

                         <td>确认密码:</td>

                         <td><input type="password" name="txtUserRpPwd"/></td>

                     </tr>

                     <tr>

                         <td>电子邮箱:</td>

                         <td><input type="text" name="userEmail"/></td>

                     </tr>

                     <tr>

                         <td>注册原因:</td>

                         <td><input type="text" name="regReason"/></td>

                     </tr>

                     <tr>

                         <td>居住地:</td>

                         <td><input type="text" name="userAddress"/></td>

                     </tr>

在控制器里的方法的定义:

@RequestMapping(value="/reg.action")

public void reg(UserInfo u){

System.out.println("用户名:"+u.getUserName());

}

3)通过url参数传递。将url的参数和形参进行一个匹配:

自动映射URL对应的参数到Action上面的数值,RequestParam
默认为必填参数。

              public String GetContent( @RequestParam(“key”)
String key){

              }

扩展:

@RequestParam(value="number", required=false) String
number 

@RequestParam("id") Long id 

@RequestParam("balance") double balance 

@RequestParam double amount 

    注意,最后一个例子没有提供清晰的参数名。当且仅当代码带调试符号编译时,结果会提取名为“amount
”的参数,否则,将抛出IllegalStateException异常,因为当前的信息不足以从请求中提取参数。由于这个原因,在编码时最好显式的指定参数名

 

在controller中定义的方法的参数的类别:

默认支持的参数类型 

Ø   HttpServletRequest

Ø   HttpservletResponse

Ø   HttpSession

Ø   Model/ModelMap

比如:@RequestMapping(value="/reg.action")

public void reg(UserInfo u){

System.out.println("用户名:"+u.getUserName());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: