struts2中模型化获取表单数据

             class属性:action全路径,对应服务器的路径

            method属性:action里面默认执行的方法execute方法,

      (3)result标签 

              name属性:和方法返回值一样 

               type属性: 配置如何到路径中(转发/dispatch或者重定向/redirect)

  1. 表单对应实体类
    package bean;
    
    public class User {
           private String name;
           private String age;
           private String address;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getAge() {
            return age;
        }
        public void setAge(String age) {
            this.age = age;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        @Override
        public String toString() {
            return "User [name=" + name + ", age=" + age + ", address=" + address + "]";
        }
           
    }
    
  2. 表单提交的服务器

    package test;
    
    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
    
    import bean.User;
    
    public class InputDemo extends ActionSupport implements ModelDriven<User> {
        private User user = new User();
        @Override
        public User getModel() {
            // TODO Auto-generated method stub
            return  user;
        }
         public String getUser() {
             System.out.println(user);
             return "ok";
         }  
    }
    

    服务器类继承ActionSupport 实现 ModelDriven接口,创建一个User实体类并 重写getModel方法得到表单封装数据

  3. struts2核心配置文件

    <?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="/">
           <action name="getUser" class="test.InputDemo" method="getUser">
                  <result name="ok" type="redirect">/jsp/Success.jsp</result>
           </action>
       </package>
    </struts>

    (1)package标签   

           name属性:

    扫描二维码关注公众号,回复: 3995101 查看本文章

             name属性值根功能本身没有关系的,

            - 在一个配置文件中可以写多个package标签,name属性值不能相同的

           extends属性

    属性值固定的,struts-default

    - 写了这个属性之后,在package里面配置的类具有action功能

         namespace属性:namespace属性值和action标签里面的name属性值构成访问路径

    (2)action标签

         name属性:

         namespace属性值和action标签里面的name属性值构成访问路径

         在package标签里面写多个action标签,但是actionname属性值不能相同的

  4. web.xml

         <filter>
             <description>配置struts2的核心过滤器</description>
             <filter-name>struts2</filter-name>
             <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
         </filter>
     
         <filter-mapping>
             <filter-name>struts2</filter-name>
             <url-pattern>*.action</url-pattern>
         </filter-mapping>
  5. 填表页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
       <form action="../getUser.action" method="post">
    		      姓名:<input type="text" name="name"/></br>
    		  年龄:<input type="text" name="age"/></br>
    		  地址:<input type="text" name="address"/></br>
             <input type="submit" value="提交">
       </form>
    </body>
    </html>

   

 

猜你喜欢

转载自blog.csdn.net/qq_42221135/article/details/82945471
今日推荐