三大框架(ssh)学习——表单数据封装

Model-Driven和Property-Driven

Struts1中我们可以将提交表单的参数使用FormBean进行封装传递给我们的Action。在struts2中我们可以使用Model-Driven和Property-Driven进行表单数据的封装,便于我们在Action中直接使用。

Property-Driven使用示例:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试struts2</title>

  </head>

  <body>

   <form action=ceshi/User>

   用户名:<input type=text name=uname /><br/>

   密码:<input type=password name=pwd /><br/>

   <input type=submit value=登陆/>

   </form>

  </body>

</html>

package com.bjsxt.struts.test;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.struts2.ServletActionContext;

 

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

 

 

public class UserAction extends ActionSupport{

 

private String uname;

private String pwd;

 

public String execute() throws Exception {

System.out.println(getUname());

return this.SUCCESS;

}

 

public String getUname() {

return uname;

}

 

public void setUname(String uname) {

this.uname = uname;

}

 

public String getPwd() {

return pwd;

}

 

public void setPwd(String pwd) {

this.pwd = pwd;

}

}

package com.bjsxt.struts.test;

 

public class User {

private int id;

private String uname;

private String pwd;

   //get和set方法省略!

}

 

属性驱动时,只要保持表单域名字和Action属性名一致,即可自动进行值得填充。

Model-Driven使用示例:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试struts2</title>

  </head>

  <body>

   <form action=ceshi/User>

   用户名:<input type=text name=uname /><br/>

   密码:<input type=password name=pwd /><br/>

   <input type=submit value=登陆/>

   </form>

  </body>

</html>

package com.bjsxt.struts.test;

 

import javax.servlet.http.HttpServletRequest;

 

import org.apache.struts2.ServletActionContext;

 

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

 

 

public class UserAction extends ActionSupport implements ModelDriven<User> {

 

private User user = new User();

 

public String execute() throws Exception {

System.out.println(user.getUname());

return this.SUCCESS;

}

 

@Override

public User getModel() {

return user;

}

 

public User getUser() {

return user;

}

 

public void setUser(User user) {

this.user = user;

}

}

package com.bjsxt.struts.test;

 

public class User {

private int id;

private String uname;

private String pwd;

   //限于篇幅,get和set方法省略!

}

 

测试:http://localhost/teststruts/login.jsp  提交表单,发现后台正确获取输入的数据:

 

 

属性驱动和模型驱动的选取:

  • 属性驱动方便简洁。表单域较少时可用。
  • 表单域较多且定义了相应的pojo,可以使用模型驱动。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值