一共三种方式:
NO.1:javabean方式
NO.2:ModelDriven方式
NO.3:Action属性接收方式
第一种javabean
定义一个javabean,不需要继承框架的任何类。
在Action中我们需要定义一个User类型的属性,比如命名为user ,并添加其get、set方法,在这里不需要通过new关键字为User属性创建对象进行实例化
这样一来,在Action类的execute方法中,要访问username和password的时候,就调用user属性的getusername方法和getpassword方法来获取这两个属性值
form表单项的name属性必须采用:对象名.属性的方式来取值
这里的user就是Action中所定义的属性的名称。两者必须保持一致。
第二种ModelDriven方式
ModelDriven接口只有一个方法getModel()
ModelDriven就是模型驱动的意思,它是Struts2提供的一个接口,该接口只有一个方法getModel()
首先同样需要一个javabean类
然后Action类
package com.action.packages;
import com.entity.packages.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginUserAction2 extends ActionSupport implements ModelDriven {
User user = new User();
@Override
public Object getModel() {
return user;
}
public String execute(){
if(user.getUsername().equals("ok")&&user.getPassword().equals("ok")){
System.out.println("..................................");
return "SUCCESS";
}else{
System.out.println("==================================");
return "ERROR";
}
}
}
页面写法:
<form action="login.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="password"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>
直接name属性就是username和password就可以了
第三种使用Action的属性接收
public class LoginUserAction1 extends ActionSupport {
private String username;
private String passwordd;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasswordd() {
return passwordd;
}
public void setPasswordd(String passwordd) {
this.passwordd = passwordd;
}
public String execute(){
if(username.equals("ok")&&passwordd.equals("ok")){
System.out.println("..................................");
return "SUCCESS";
}else{
System.out.println("==================================");
return "ERROR";
}
}
}
页面写法:
<form action="login.action">
用户名:<input type="text" name="username"/><br/><br/>
密 码:<input type="password" name="passwordd"/><br/><br/>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>
注意name属性写法,要和Action的名字保持一致,才能获取到数据