Struts2页面到action的三种传值方式
2014-02-06 13:45
417 查看
struts2中的Action接收表单传递过来的参数有3种方法:
如,登陆表单login.jsp:
1、在Action类中定义表单属性,两者属性名称必须一致,提供setter,getter方法,即可接收到表单传过来的参数。
这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。
2、把表单传递过来的参数封装成一个类,然后调用其中的属性,如,把login.jsp页面要传来的参数进行封装:
然后在Action方法中,定义该类的对象就可以了,如
登陆表单login.jsp:
3、通过实现ModelDriven接口接收表单数据
首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法
Action:必须实现getModel()方法
Java代码
Action:必须提供set方法
Java代码
如,登陆表单login.jsp:
<formaction="login"method="post"name="form1"> 用户名:<s:textfieldname="username"/><br/> 密码:<s:passwordname="password"/><br/> <s:submitvalue="提交"/> </form>
1、在Action类中定义表单属性,两者属性名称必须一致,提供setter,getter方法,即可接收到表单传过来的参数。
这种接收参数的方法,方便简单,但是结构性不是很好,且当表单传递来的参数很多的时候,整个Action类中充斥着setter,getter方法,程序结构不是很美观。
2、把表单传递过来的参数封装成一个类,然后调用其中的属性,如,把login.jsp页面要传来的参数进行封装:
publicclassUsers{ privateStringusername; privateStringpassword; publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } }
然后在Action方法中,定义该类的对象就可以了,如
publicclassloginActionextendsActionSupport{ //传递过来的参数都封装在users中了,用getter方法取值就可以了 privateUsersusers; publicUsersgetUsers(){ returnusers; } publicvoidsetUsers(Usersusers){ this.users=users; } }通过这种方法传值,还必须在jsp页面做一下处理,login.jsp中from1的属性名应该改成这样:
登陆表单login.jsp:
<formaction="login"method="post"name="form1"> 用户名:<s:textfieldname="users.username"/><br/> 密码:<s:passwordname="users.password"/><br/> <s:submitvalue="提交"/> </form>这种方法,在struts开发中是很常用的一种方法!
3、通过实现ModelDriven接口接收表单数据
首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法
publicclassloginActionextendsActionSupportimplementsModelDriven<Users>{ //表单传来的参数封装在users对象中表单属性名不需要加上引用users对象,直接传参数名 privateUsersusers=newUsers(); publicUsersgetModel(){ returnusers; } }三种方式代码分别如下:
通过属性驱动式
Jsp
代码
<formaction="sys/login.action"method="post"> <inputtype="text"name="username"> <inputtype="submit"value="submit"> </form>
Action:
直接通过get、set方法获取。
Jsp
代码
publicclasssysActionextendsActionSupport{ privateStringusername; publicStringlogin()throwsException{ System.out.println(username); returnSUCCESS; } publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } }
2.
模型驱动方式,必须要实现ModelDriven<T>接口。对于要传入多个model第二种方式不方便
Jsp
代码
<formaction="sys/login.action"method="post"> <inputtype="text"name="username"> <inputtype="submit"value="submit"> </form>
Action:必须实现getModel()方法
Java代码
publicclasssysActionextendsActionSupportimplementsModelDriven<User>{ privateUseruser; publicStringlogin()throwsException{ System.out.println(getModel().getName()); returnSUCCESS; } publicUsergetModel(){ if(null==user){ returnuser=newUser(); } returnuser; } }
3.
第三种方式可以完全不实现ModelDriven<T>,也可使用多个model对象的属性。
Jsp
代码
<formaction="sys/login.action"method="post"> <inputtype="text"name="username"> <inputtype="submit"value="submit"> </form>
Action:必须提供set方法
Java代码
publicclasssysActionextendsActionSupport{
privateUseruser;
privateTeacherteacher;
publicStringlogin()throwsException{
System.out.println(user.getName());
System.out.println(teacher.getLevel());
returnSUCCESS;
}
publicvoidsetUser(Useruser){
this.user=user;
}
publicvoidsetTeacher(Teacherteacher){
this.teacher=teacher;
}
}
相关文章推荐
- Struts2页面到action的三种传值方式
- Struts2三种传参方式(从jsp页面传到Action)
- Struts2页面数据和Action数据三种基本对应方式
- Struts2三种传参方式(从jsp页面传到Action)
- Struts2页面到action的三种传值方式
- struts2前台页面传值到action的三种方式
- 【郭林专刊】Struts2三种传参方式(从jsp页面传到Action) .
- Struts2页面到action的三种传值方式
- Struts2三种传参方式(从jsp页面传到Action)
- Struts2三种传参方式(从jsp页面传到Action)
- Struts2三种传参方式(从jsp页面传到Action)
- Struts2页面到action的三种传值方式
- Struts2三种传参方式(从jsp页面传到Action)
- Struts2中jsp前台传值到action后台的三种方式以及valueStack的使用
- 【Struts2】Action接收参数的三种方式
- struts2通配符及Action开发的三种方式
- Struts2中action重定向跳转到jsp页面两种配置方式
- struts2学习(二)—action获取表单提交数据的三种方式
- struts2中从页面取值的三种方式
- struts2中jsp页面传值到action方式总结