Struts2 学习笔记07 接收参数的三种方法
来源:互联网 发布:淘宝纠纷率影响大吗 编辑:程序博客网 时间:2024/05/17 22:27
讲解一下用Struts2接收参数的三种方法。
1.用Action的属性接收。
访问http://localhost:8080/Struts2_0700_ActionAttrParamInput/user!add?name=sss&age=10
访问user action的add 方法传入name=sss和age=10.
struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="user" class="com.tfj.struts2.action.UserAction" ><result>/addsuccess.jsp</result></action> </package></struts>调用com.tfj.struts2.action的UserAction类。
UserAction.java
package com.tfj.struts2.action;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}private int age;public String add(){System.out.println("name="+name);System.out.println("age="+age);return SUCCESS;}}
通过定义两个变量,age,name,实现get和set方法,完成调用。输入的值打印在控制台。
2.用DomainModel接收。
DomainModel是域模型的意思。
struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="user" class="com.tfj.struts2.action.UserAction"><result>/addsuccess.jsp</result></action> </package></struts>
UserAction.java
package com.tfj.struts2.action;import com.opensymphony.xwork2.ActionSupport;import com.tfj.struts2.user.User;public class UserAction extends ActionSupport{public User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String add(){System.out.println("name="+user.getName());System.out.println("age="+user.getAge());return SUCCESS;}}User.java
package com.tfj.struts2.user;public class User {public String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int age;}
在UserAction只定义一个user,user的属性放在User.java里,user就是一个域模型。在访问中访问http://localhost:8080/Struts2_0800_DomainModelParamInput/user!add?user.name=aaa&user.age=10
用user.name 和user.age来传递参数。
不过有的时候需要传递的参数并不是user的属性,例如在网页注册的时候,我们经常看到密码的建立框和密码的确认框,那么这个时候,确认框里的内容并不是user的参数。这个是后我们就要用到DTO,简单的说先用DTO接受参数,在把需要的参数传递给user建立一个user对象。
3.用ModelDriven来接受参数。
虽然ModelDriven并不常用但是它代表了一种MVC的思想还是很有必要了解一下的。
UserAction.java
package com.tfj.struts2.action;import com.opensymphony.xwork2.ActionSupport;import com.opensymphony.xwork2.ModelDriven;import com.tfj.struts2.user.User;public class UserAction extends ActionSupport implements ModelDriven<User>{private User user = new User();public String add(){System.out.println("name="+user.getName());System.out.println("age="+user.getAge());return SUCCESS;}@Overridepublic User getModel() {// TODO Auto-generated method stubreturn user;}}访问http://localhost:8080/Struts2_0900_ModelDrivenParamInput/user!add?name=aaa&age=10
不需要用user.name。在这个类实现了ModelDriven<User>接口,实现getModel()方法,区别是要自己创建一个user对象。过程如下图。
当需要传递中文时候需要在struts.xml配置<constant name="struts.i18n.encoding" value="GBK"> 就可以了。
- Struts2 学习笔记07 接收参数的三种方法
- (三)Struts2接收参数的方法
- Struts2中action接收参数的三种方法
- Struts2接收前端参数的三种方法
- Struts2接收参数的三种方式
- struts2接收参数的三种方式
- Struts2 接收参数的三种方式
- Struts2_学习笔记(三)--------Action接收参数的四种方法
- Struts2_学习笔记(三)--------Action接收参数的四种方法
- Struts2接收参数的几种方法
- struts2接收参数的3种方法
- struts2接收参数的方法
- struts2接收参数的方法
- Struts2关于Action的系统训练6关于action接收参数的三种方法
- Struts2学习笔记(二)——请求参数的接收
- Struts2中Action接收参数的方法主要有以下三种
- Struts2中Action接收参数的方法主要有以下三种:
- Struts2中Action接收参数的方法主要有以下三种:
- 小学生玩ACM----广搜
- android Spinner
- GDB调试
- Activity启动模式记录
- 嵌入式Linux系统CGI程序设计技术
- Struts2 学习笔记07 接收参数的三种方法
- 管理和监视rman备份之:list,report和delete命令简介
- 转眼一年了
- 《C语言深度解剖》4.15编译器的bug一节详解
- 插入排序实现
- 怎样高效的使用一种语言?
- java 迭代器iterator的原理 浅谈
- 数据库中无记录遇到实时错误“3021”的解决方法
- poj 3422 Kaka's Matrix Travels(最小费用最大流)