Struts2的模型驱动封装方法获取页面提交的表单数据(接收表单数据的最常用的方法)

来源:互联网 发布:液晶电视怎么连接网络 编辑:程序博客网 时间:2024/05/29 10:05

一般获取表单的数据主要有两种方法:

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;}@Overridepublic 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;}@Overridepublic String execute(){System.out.println(username+":"+password);return "success";}}


整个项目截图:




原创粉丝点击