一、属性驱动
<1>.在action类中定义属性,生成get,set方法。
<2>.在访问的地方传入相应的属性名和值,struts2自动接收。
action类:
package cn.hd.param; import com.opensymphony.xwork2.ActionSupport; public class AttrAction extends ActionSupport { private String name; private String psd; @Override public String execute() throws Exception { return super.execute(); } public String login(){ System.out.println(name); System.out.println(psd); return NONE; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsd() { return psd; } public void setPsd(String age) { this.psd = age; } } struts01.xml:
<struts> <package name="param" namespace="/" extends="struts-default"> <action name="attrAction" class="cn.hd.param.AttrAction" method ="login"> </action> </package> </struts>Demo.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery.min.js"></script> </head> <body> <button id="btn">访问servletApi</button> </body> <script> $("#btn").click(function () { var param = {name:"小明",psd:"12345"}; $.ajax({ url:"http://localhost:8080/attrAction", data:param, success:function (res) { res = JSON.stringify(res); alert(res); }, error:function (err) { alert(err); } }) }) </script> </html> 结果:
二、对象驱动
<1>.定义一个bean类,在action类中定义一个对象并生成get,set方法。
<2>.在请求的地方,请求参数键值有规定,必须按照规定的对象名,属性名进行传值。
action类:
package cn.hd.param; import com.opensymphony.xwork2.ActionSupport; public class ObjAction extends ActionSupport { private User user; @Override public String execute() throws Exception { System.out.println(user); return NONE; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } } bean类:
package cn.hd.param; public class User { private String name; private String psd; @Override public String toString() { return "User{" + "name='" + name + '\'' + ", psd='" + psd + '\'' + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsd() { return psd; } public void setPsd(String psd) { this.psd = psd; } }
struts01.xml:
Demo.html:
结果:
三、模板驱动
<1>.实现MOduleDriver<User>接口
<2>.重写方法
<3>.在action类中创建bean类对象。(new对象)
<4>.请求的地方与对象 属性传递相同。
action类:
package cn.hd.param; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class ModuleAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); @Override public String execute() throws Exception { System.out.println(user); return NONE; } @Override public User getModel() { return user; } } bean类
package cn.hd.param; public class User { private String name; private String psd; @Override public String toString() { return "User{" + "name='" + name + '\'' + ", psd='" + psd + '\'' + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPsd() { return psd; } public void setPsd(String psd) { this.psd = psd; } } struts01.xml:
<struts> <package name="param" namespace="/" extends="struts-default"> <action name="moduleAction" class="cn.hd.param.ModuleAction" me thod="execute"> </action> </package> </struts>Demo.html:
<script> $("#btn").click(function () { var param = {name:"小白",psd:"12345"}; $.ajax({ url:"http://localhost:8080/moduleAction", data:param, success:function (res) { res = JSON.stringify(res); alert(res); }, error:function (err) { alert(err); } }) }) </script>结果:
