Struts2的模型驱动封装方法获取页面提交的表单数据(接收表单数据的最常用的方法)
2017-12-03 18:45
986 查看
一般获取表单的数据主要有两种方法:
1)属性封装方法获取表单提交数据
2)模型驱动方法获取表单提交数据
利用模型驱动封装方法可以直接把用户提交的表单数据直接封装到实体类的对象中,比如 User 的对象中,而不需要像属性封装那样自己写代码获取对象,是一种非常方便的方法,减少了代码的书写。
但是不能同时使用模型驱动封装和属性封装同时获取同一个表单数据,如果这样做了,那么只会执行模型驱动封装方法,但是可以同时使用获取不同的表单数据
Struts.xml配置文件信息:
jsp 页面信息:
User实体类:
附:属性封装方法获取表单提交数据
上面的 struts.xml 配置文件已经包含属性封装所需要的配置信息,jsp 页面信息和模型驱动封装的也是一样,只不过在标签 form 的 action 里面提交到属性封装的 action 里面,实体类同样是 User 类,就是主程序是主要内容如下:
package com.mx.shuxingfengzhuang;
import com.opensymphony.xwork2.ActionSupport;
public class shuxingfengzhuang extends ActionSupport {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute(){
System.out.println(username+":"+password);
return "success";
}
}
整个项目截图:
1)属性封装方法获取表单提交数据
2)模型驱动方法获取表单提交数据
利用模型驱动封装方法可以直接把用户提交的表单数据直接封装到实体类的对象中,比如 User 的对象中,而不需要像属性封装那样自己写代码获取对象,是一种非常方便的方法,减少了代码的书写。
但是不能同时使用模型驱动封装和属性封装同时获取同一个表单数据,如果这样做了,那么只会执行模型驱动封装方法,但是可以同时使用获取不同的表单数据
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="hellodemo" extends="struts-default" namespace="/"> <!-- 全局result属性 --> <global-results> <result name="ok">/hello.jsp</result> </global-results> <action name="ok" class="com.mx.action.okAction"></action> <!-- name:访问名称 --> <action name="hello" class="com.mx.action.helloAction"> <!-- 配置方法的返回值到页面 ,在有局部result 的情况下,依局部result为准--> <!-- <result name="ok">/hello.jsp</result> --> </action> </package> <package name="form" extends="struts-default" namespace="/"> <action name="hello1" class="com.mx.test_form.form_Action"> <result name="success">/test_form.jsp</result> </action> </package> <!-- 把从表单提交的数据封装到action 的属性里面(属性封装) --> <package name="shuxingfengzhuang" extends="struts-default" namespace="/"> <action name="sxfz" class="com.mx.shuxingfengzhuang.shuxingfengzhuang"> <result name="success">/shuxingfengzhuang.jsp</result> </action> </package> <!-- 模型驱动封装方法获取页面提交的表单数据 --> <package name="moxingqudong" extends="struts-default" namespace="/"> <action name="mxqd" class="com.mx.shuxingfengzhuang.moxingqudong"> <result name="success">/moxingqudong.jsp</result> </action> </package> </struts>
jsp 页面信息:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <form action="${pageContext.request.contextPath}/mxqd.action" method="post"> 用户名:<input type="text" name="username"/><br/> 密 码:<input type="password" name="password"/><br/> <input type="submit" value="提交"/> </form> </body> </html>
User实体类:
package com.mx.entity; public class User { private String username; private String 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; } @Override public String toString() { return "User [username=" + username + ", password=" + password + "]"; } }主程序:
package com.mx.shuxingfengzhuang; import com.mx.entity.User; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; public class moxingqudong extends ActionSupport implements ModelDriven<User>{ private User user = new User(); public User getModel() { return user; } public String execute(){ System.out.println(user); return "success"; } }
附:属性封装方法获取表单提交数据
上面的 struts.xml 配置文件已经包含属性封装所需要的配置信息,jsp 页面信息和模型驱动封装的也是一样,只不过在标签 form 的 action 里面提交到属性封装的 action 里面,实体类同样是 User 类,就是主程序是主要内容如下:
package com.mx.shuxingfengzhuang;
import com.opensymphony.xwork2.ActionSupport;
public class shuxingfengzhuang extends ActionSupport {
private String username;
private String password;
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute(){
System.out.println(username+":"+password);
return "success";
}
}
整个项目截图:
相关文章推荐
- 【JavaEE笔记】Struts2 (二) 结果页面配置 、获取表单提交数据 、提供获取表单数据方式 、获取数据封装到集合中
- Struts2表单验证、模型驱动、防重复提交、数据回显笔记整理
- JavaWeb获取表单数据的三种方式(属性封装,表达式封装,模型驱动封装)
- 在phpstorm中利用post方法提交form表单后,在响应页面获取不到数据的解决办法
- 7、struts2 案例( 模型驱动、 防止表单重复提交--拦截器 、数据回显 、值栈 、 OGNL表达式综合运用)
- 二、struts2结果页面配置,获取表单数据,数据封装
- struts2模型驱动获取表单的数据是空
- Struts2表单验证、模型驱动、防重复提交、数据回显笔记整理 文章标题
- struts2获取表单提交数据的三种方法
- Struts2学习(第六篇)——获取servletAPI和封装表单数据
- ASP.NET MVC中在Action获取提交的表单数据方法总结 .
- Struts2(二)---将页面表单中的数据提交给Action
- Struts2-数据回显、模型驱动等常用技术
- Action如何接收jsp页面form表单提交的数据?
- 利用jQuery中的serialize方法大量获取页面中表单的数据,发送的服务器
- form表单action提交表单,页面不跳转且表单数据含文件的处理方法
- 细谈struts2(六)获取servletAPI和封装表单数据
- jsp页面提交表单给本jsp获取输入框内容方法
- spring mvc中controller怎么接收页面表单提交的数据