SpringMVC的参数映射问题

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());

}

猜你喜欢

转载自blog.csdn.net/y1991024/article/details/51944859