zoukankan      html  css  js  c++  java
  • struts2入门

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,

    在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

    环境搭配

    .添加依赖
        <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-config-browser-plugin</artifactId>
        <version>2.5.13</version>
        </dependency>

    pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.huang</groupId>
      <artifactId>T226_struts01</artifactId>
      <packaging>war</packaging>
      <version>0.0.1-SNAPSHOT</version>
      <name>T226_struts01 Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <dependencies>
       <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.44</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.1</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>2.5.13</version>
            </dependency>
      </dependencies>
      <build>
        <finalName>T226_struts01</finalName>
        <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
        </plugins>
      </build>
    </project>

    struts-base.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
        <constant name="struts.i18n.encoding" value="UTF-8" />
        <constant name="struts.devMode" value="true" />
        <constant name="struts.configuration.xml.reload" value="true" />
        <constant name="struts.i18n.reload" value="true" />
        <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    
        <package name="base" extends="struts-default" abstract="true">
            <global-allowed-methods>regex:.*</global-allowed-methods>
        </package>
    </struts>

    struts-sy.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
        <package name="sy" extends="base" namespace="/sy">
        <action name="/hello_*" class="com.huang.one.web.HelloAction" method="{1}">
            <result name="success">/success.jsp</result>
        </action>
        </package>
    </struts>

    struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
        <include file="struts-default.xml"></include>
        <include file="struts-base.xml"></include>
        <include file="struts-sy.xml"></include>
    </struts>

    1、动态方法调用(mvc不具备的优势)

    HelloAction.java

    package com.huang.one.web;
    
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts2.ServletActionContext;
    import org.apache.struts2.interceptor.RequestAware;
    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.interceptor.ServletResponseAware;
    
    import com.huang.one.entity.User;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ModelDriven;
    
    
    public class HelloAction implements ModelDriven<User>,ServletRequestAware,ServletResponseAware{
        private HttpServletResponse response;
        private HttpServletRequest request;
        private User user1=new User();
        private User user2;
        private String sex;
        private String uname;
        
        public User getUser2() {
            return user2;
        }
    
        public void setUser2(User user2) {
            this.user2 = user2;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public String add() {
            System.out.println("add方法");
            return "success";
        }
        
        public String del() {
            System.out.println("del方法");
            return "success";
        }
        
        public String edit() {
            System.out.println("edit方法");
            return "success";
        }
        
        public String list() {
            System.out.println("list方法");
            System.out.println("user1:"+user1);
            System.out.println("user2:"+user2);
            System.out.println("sex:"+sex);
            System.out.println("uname:"+uname);
    //        HttpServletRequest request = ServletActionContext.getRequest();
    //        request.setAttribute("rs", user1);
            this.request.setAttribute("rs",user1);
            return "success";
        }
    
        @Override
        public User getModel() {
            return user1;
        }
    
        @Override
        public void setServletRequest(HttpServletRequest request) {
            this.request=request;
        }
    
        @Override
        public void setServletResponse(HttpServletResponse response) {
            this.response=response;
        }
    
    
    }

    2、struts中的传参
    1、set传参
    2、参数名,属性名传参
    3、实现modeldriven接口传参

    demo1.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>
    <h2>struts传参的三种方式</h2>
    <a href="${pageContext.request.contextPath }/sy/hello_list.action?uid=001&&uname=zs">测试modeldriven接口传参</a>
    <a href="${pageContext.request.contextPath }/sy/hello_list.action?sex=nv">测试set传参</a>
    <a href="${pageContext.request.contextPath }/sy/hello_list.action?user2.uid=002&&user2.uname=ls">测试参数名.属性名传参</a>
    <h2>与j2EE容器的交互</h2>
    </body>
    </html>

    success.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>
    成功页面:${user2 }
    </body>
    </html>

    运行结果:

  • 相关阅读:
    Python 爬虫js加密破解(一) 爬取今日头条as cp 算法 解密
    Python 爬虫实例(2)—— 爬取今日头条
    Python 爬虫实例(1)—— 爬取百度图片
    python 操作redis之——HyperLogLog (八)
    python 操作redis之——有序集合(sorted set) (七)
    Python操作redis系列之 列表(list) (五)
    Python操作redis系列以 哈希(Hash)命令详解(四)
    Python操作redis字符串(String)详解 (三)
    How to Install MySQL on CentOS 7
    Linux SSH远程文件/目录 传输
  • 原文地址:https://www.cnblogs.com/bf6rc9qu/p/11247102.html
Copyright © 2011-2022 走看看