技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 网络编程 > java开发 > 正文

springmvc中@ModelAttribute绑定请求参数的问题

来源: 技术CTO 阅读:

我想实现在前台页面的域自动封装到javabean,再传到controller中使用,不是一个个参数的传递,结果后台取值是null,代码如下:


@Controller
@RequestMapping("/test")
public class TestController {


public TestController() {
// TODO Auto-generated constructor stub
}
@RequestMapping("/testModelAttribute")
public String testModelAttribute(@ModelAttribute("testBean") TestBean testBean){
System.out.println("=======getUserName============"+testBean.getUserName());
return null;
}
}


<form name = "fm" action="/test/testModelAttribute">
    <input type = "text" name = "testBean.userName" id="testBean.userName"/>
    <input type = "password" name = "testBean.passWord" id="testBean.passWord"/>
    <input type = "submit" name = "submit" />
</form>
@RequestMapping("/testModelAttribute")    
    public void test2(TestBean  testBean)  
    {  
         System.out.println("=======getUserName============"+testBean.getUserName());
       
    } 
     
23456 <form name = "fm" action="/test/testModelAttribute">     <input type = "text" name = "testBean.userName" id="testBean.userName"/>     <input type = "password" name = "testBean.passWord" id="testBean.passWord"/>     <input type = "submit" name = "submit" /> </form> 
  name点前面的不需要,和struts不一样的哦
去掉testBean.

sring不像struts那样需要实体.。
它是直接输入属性即可,哪怕A实体有name属性,你又而外定义个String name属性,它们两个都会有值。
引用 3 楼 jiuliangyin 的回复:
去掉testBean.

sring不像struts那样需要实体.。
它是直接输入属性即可,哪怕A实体有name属性,你又而外定义个String name属性,它们两个都会有值。


如果我的这两个name需要接收不同的参数呢? 比如我有两个bean——A和B,主键都叫id,我做修改的时候,页面需要把A和B两个bean的id都提交上来,如果都只写id,两个bean中的值就一样了。。
引用 5 楼 BlueSpectre 的回复:
Quote: 引用 3 楼 jiuliangyin 的回复:

去掉testBean.

sring不像struts那样需要实体.。
它是直接输入属性即可,哪怕A实体有name属性,你又而外定义个String name属性,它们两个都会有值。


如果我的这两个name需要接收不同的参数呢? 比如我有两个bean——A和B,主键都叫id,我做修改的时候,页面需要把A和B两个bean的id都提交上来,如果都只写id,两个bean中的值就一样了。。

springmvc 不像struts那样,可以自动绑定多个对象实体,spring如果同时要像spring那样要重写几个方法才行,具体百度

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^