struts2 提交表单

来源:互联网 发布:淘宝认证服务商 编辑:程序博客网 时间:2024/05/22 12:23
提交表单 struts2 不再像struts1 那样需要一个form bean ,当然也不需要在struts.xml中绑定form

bean。直接在action中就可以获得各个表单域的值。

以登录表单和登录action举例说明:

一、页面中表单loginForm 包含两个域 姓名域:userName 和密码域:password 。

<form name="loginForm" action="login.do" method="POST">
name:<input type="text" name="userName" id="userName" value="" />
password:<input type="password" name="password" id="password" />
<input type="submit" name="loginBt" id="loginBt" value="login"/>
</form>


二、登录的action :

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
Logger logger = Logger.getLogger(ActionSupport.class);

private String userName =""; //定义userName 属性
private String password =""; //定义password属性

public String getUserName() {
   return userName;
}

public void setUserName(String userName) {
   this.userName = userName;
}

public String getPassword() {
   return password;
}

public void setPassword(String password) {
   this.password = password;
}


public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
   HttpServletResponse response = ServletActionContext.getResponse();
   HttpSession session = request.getSession();

   //如果输入的用户名为 yangzi 则返回到成功页面,否则返回失败页面。
if(userName!=null && userName.equals("yangzi")){
    return SUCCESS;
   }else{
    return ERROR;
   } 

}


}


三、说明
action中要有和表单域对应的属性名,并且要有相应的符合javabean规范的set和get方法。
个人认为:其实struts2的action可以是一个“可包含业务逻辑的javabean”。

可以看到struts2 在使用表单方面比struts1节约了一个formbean,或者说用一个javabean集成了action

功能。

如果考虑其他的,struts2甚至可以省去业务逻辑层,直接用实体层的 javabean+业务逻辑就可以实现所

有功能,从而做大程度上做到了代码重用。
public class Usersaction extends ActionSupport implements ModelDriven{}
也可以使用继承ModelDriven方法来定义一个表单而不用像struts1要配置formbean,ModelDriven会要求你生成一个方法 
public Object getModel() {

  return 表单;
 } 
来获取表单

原创粉丝点击