Struts2封装获取表单数据方式:

Posted java学习过程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2封装获取表单数据方式:相关的知识,希望对你有一定的参考价值。

(1)原始的封装方法

封装到实体类中:

form.jsp重要代码

  <form action="${pageContext.request.contextPath }/form.action" method="post">

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

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

 地  址 :<input type="text" name="address"/><br/>

 <input type="submit" value="提交">

  </form>

  </body>

实体类User重要代码

package com.limuzi.entity;

public class User {

private String username;

private String password;

private String addresss;

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 getAddresss() {

return addresss;

}

public void setAddresss(String addresss) {

this.addresss = addresss;

}

@Override

public String toString() {

return "User [username=" + username + ", password=" + password

+ ", addresss=" + addresss + "]";

}

}

Struts2封装获取表单数据方式:

FormAction类的代码:

package com.limuzi.action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.limuzi.entity.User;

import com.opensymphony.xwork2.ActionSupport;

//使用ServletActionContext获取表单数据封装到实体类的对象里面

public class FormAction extends ActionSupport {

@Override

public String execute() throws Exception {

//获取表单数据

HttpServletRequest request = ServletActionContext.getRequest();

String username = request.getParameter("username");

String password = request.getParameter("password");

String address = request.getParameter("address");

//封装到实体类User中

User user = new User();

user.setUsername(username);

user.setPassword(password);

user.setAddresss(address);

System.out.println(user);

return null;

}

}

Struts2封装获取表单数据方式:

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>

<package name="demo2" extends="struts-default" namespace="/">

<action name="form" class="com.limuzi.action.FormAction">

<result>/form.jsp</result>

</package>

</struts>

Web.xml配置与之前的一样。

浏览器结果:

Struts2封装获取表单数据方式: 

控制台显示:

User [username=李木子, password=11111, addresss=河北省]

Struts2封装获取表单数据方式:

(2)属性封装:把表单提交属性封装到action里面

步骤:

① action变量位置定义变量,变量名称和表单输入项的name属性值相同。

② 生成变量的setget方法。

(3)模型驱动封装:表单输入项的名称和实体类属性必须相同。

操作步骤:

① Action实现接口ModelDriven

② 实现接口的方法getModel,将创建的对象返回

③ action里面创建实体类对象

eg

User实体类,jsp页面、struts.xml配置和之前相同。

DemoAction代码:

package com.limuzi.struts;

import com.opensymphony.xwork2.ActionSupport;

import com.opensymphony.xwork2.ModelDriven;

public class DemoAction extends ActionSupport implements ModelDriven<User> {

//创建对象

private User user = new User();

@Override

public User getModel() {

// TODO Auto-generated method stub

return user;

}

@Override

public String execute() throws Exception {

// TODO Auto-generated method stub

System.out.println(user);

return NONE;

}

}

利用debug断点来查看传值是否成功。

使用模型驱动和属性封装需注意:

在一个action中,获取表单数据可以通过属性封装,使用模型驱动封装,不能同时使用属性封装和模型驱动封装获取同一个表单数据。若两个同时使用,只执行模型驱动封装,不执行属性封装。



以上是关于Struts2封装获取表单数据方式:的主要内容,如果未能解决你的问题,请参考以下文章

struts2 封装获取表单数据的方式

Struts2学习

struts2获取表单数据之 属性封装 模型驱动 表达式封装 对象封装到list集合 对象封装到map集合 五种方便的封装方式

struts2 获取表单数据封装到list和map集合

struts2 模型驱动封装

Struts2表达式封装Action获取不到表单数据的一次记录