zoukankan      html  css  js  c++  java
  • Struts2框架的数据封装一之属性封装(属性封装的第一种方式:对参数进行封装)

    • request带着参数来,aciton对其进行处理。在学习action之前,使用的是servlet对request进行处理。request请求时会带有参数,所以我们要对这些参数进行封装。
    1. 为什么要使用数据的封装呢?
        * 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中
        * 封装数据为开发提供了很多方便
        * Struts2框架提供了很强大的数据封装的功能,不再需要使用Servlet的API完成手动封装了!!
    
    2. Struts2中提供了两类数据封装的方式?
        * 第一种方式:属性驱动(有两种方式:封装参数,另外一个是将参数封装到javaBean中)
            A. 提供对应属性的set方法进行数据的封装。(封装参数)(属性驱动中用的最多的是封装参数,而不是封装javaBean)
                * 表单的哪些属性需要封装数据,那么在对应的Action类中提供该属性的set方法即可。
                * 表单中的数据提交,最终找到Action类中的setXxx的方法,最后赋值给全局变量。
                * 注意0:Struts2的框架采用的拦截器完成数据的封装。
                * 注意1:这种方式不是特别好:因为属性特别多,提供特别多的set方法,而且还需要手动将数据存入到对象中.
                * 注意2:这种情况下,Action类就相当于一个JavaBean,就没有体现出MVC的思想,Action类又封装数据,又接收请求处理,耦合性较高。
          1.书写index.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>
        
        <h3>属性驱动封装数据</h3>
        <form action="${ pageContext.request.contextPath }/regist1Action.action" method="post"> 
            姓名<input type="text" name="username"/><br/>
            密码<input type="text" name="password"/><br/>
            <input type="submit" value="注册">
            
        </form>
    </body>
    </html>

          2.写对应的RegistAction类:

    package com.huida.action1;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class Regist1Action extends ActionSupport{
    
        private String username;
        private String password;
        
        public void setUsername(String username) {
            this.username = username;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
        //以前封装数据是先通过get方法获取参数然后再进行封装。
        //现在struts已经给我们封装好了,我们只需要按照他的规则写就ok了:定义变量,对应的set方法就可以了
        @Override
        public String execute() throws Exception {
    
            System.out.println(username+"..."+password);
            return NONE;
        }
    }

          3.对书写的action进行配置,注意这里action标签中name的值应该与jsp页面中写的跳转地址相同,否则会报错:

    <package name="demo" namespace="/" extends="struts-default">
            <action name="regist1Action" class="com.huida.action1.Regist1Action"></action>
     </package>

          4.运行index.jsp文件,在表单中输入姓名和密码,点击注册,在控制台输出:

          
     
    
     
  • 相关阅读:
    BZOJ 1565 植物大战僵尸
    BZOJ 1497 最大获利(最大权闭合子图)
    BZOJ 1070 修车(最小费用流)
    BZOJ 2879 NOI2012美食节
    PHPCMS模板里面使用自定义函数
    邓_phpcms_数据库
    邓_ phpcms_
    dedecms====phpcms 区别==[工作]
    邓_html_图片轮播
    dedecms_插件
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10104917.html
Copyright © 2011-2022 走看看