• Struts·入门二


    struts结果处理 获得servletAPI 参数获得方式

    一:结果处理

      1.导包

      2.配置struts文件

    <package name="test01" namespace="/" extends="struts-default">
            <action name="ResultMessage" class="cn.itcast.dispatcher.ResultMessage" method ="execute">
                <result name="success" type="dispatcher">/dispatcher.jsp</result>
            </action>
        </package>
    转发 
    <package name="test02" namespace="/" extends="struts-default">
            <action name="RedirectMessage" class="cn.itcast.redirect.RedirectMessage" method ="execute">
                <result name="success" type="redirect">/redirect.jsp</result>
            </action>
        </package>
    重定向
    <package name="test03" namespace="/" extends="struts-default">
            <action name="RedirectAction" class="cn.itcast.redirecttoAction.RedirectAction" method ="execute">
                <result name="success" type="redirectAction">
                <param name="actionName">RedirectMessage</param>
                <param name="namespace">/</param>
                </result>
            </action>
        </package>
    重定向到action

      3.配置web.xml 中核心过滤器

    <!-- struts2核心过滤器 -->
      <filter>
          <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>/*</url-pattern>
      </filter-mapping>
    核心过滤器

      4.书写action类

    public class ResultMessage extends ActionSupport{
    
        @Override
        public String execute() throws Exception {
            // TODO Auto-generated method stub
            System.out.println("转发");
            return SUCCESS;
        }
        
    }
    转发

    二:获得servlet API 

      1.导包

      2.配置struts文件

    <?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="test04" namespace="/" extends="struts-default">
            <action name="AccessServletAction" class="cn.itservletapi.test.AccessServletAction" method ="execute">
                <result name="success">/api.jsp</result>
            </action>
        </package>
    </struts>
    struts

      3.书写action类 

    package cn.itservletapi.test;
    
    import java.util.Map;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
     * @author 作者
     * @version 创建时间:2018年7月24日 下午3:22:10 类说明:访问servlet中的API 
     * 1.获取三大作用域对象及页面参数
     * 2.是struts标签的上下文对象
     * 3.ThreadLocal内装的就是ActionContext`
     */
    public class AccessServletAction extends ActionSupport {
    
        @Override
        public String execute() throws Exception {
            // request域=>map
            //例如给request域放值
            
            Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");;
            request.put("name", "requestTom");;
            // session域=>map
            Map<String, Object> session = ActionContext.getContext().getSession();
            session.put("name", "sessionTom");
            // application域=>map
            Map<String, Object> application = ActionContext.getContext().getApplication();
            application.put("name", "applicationTom");
            return SUCCESS;
        }
    
    }
    访问api的类

      4.书写api.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>
        request:${request.name}<br>
        session:${session.name}<br>
        application:${application.name}<br>
    </body>
    </html>
    jsp

    三:接受参数

      1.导包

      2.书写stuts配置文件

    <?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="test05" namespace="/" extends="struts-default">
            <action name="ParamMessage" class="cn.itming.param.ParamMessage" method ="execute">
                <result name="success">/form.jsp</result>
            </action>
        </package>
    </struts>
    struts

      3.书写实体类 

    package cn.itming.domain;
    /**
    * @author 作者
    * @version 创建时间:2018年7月23日 下午6:13:15
    * 类说明:
    */
    public class User {
        private String name;
        private Integer age;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Integer getAge() {
            return age;
        }
        public void setAge(Integer age) {
            this.age = age;
        }
        @Override
        public String toString() {
            return "User [name=" + name + ", age=" + age + "]";
        }    
    }
    user

      4.书写action类

    package cn.itming.param;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    import cn.itming.domain.User;
    
    /**
    * @author 作者
    * @version 创建时间:2018年7月23日 下午6:12:32
    * 类说明:获取参数的方式
    */
    public class ParamMessage extends ActionSupport{
        private User user;
    
        public User getUser() {
            return user;
        }
    
        public void setUser(User user) {
            this.user = user;
        }
    
        @Override
        public String execute() throws Exception {
            // TODO Auto-generated method stub
            System.out.println(user);
            return super.execute();
        }
        
        
    }
    action

      5.书写form.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}/ParamMessage}" method="post">
            用户名:<input type="text" name="user.name"/>
            年龄:<input type ="text" name="user.age"/>
            <input type="submit" value="提交"/>
        </form>
    </body>
    </html>
    jsp
  • 相关阅读:
    SpringBoot统一全局响应(5)
    SpringBoot统一异常处理(4)
    Spring Cloud Alibaba-Gateway搭配Nacos实现动态路由(4)
    SpringBoot使用javax.validation进行参数校验(3)
    SpringBoot使用日志(2)
    WPF 之 ObservableCollection 动态数据集合的使用(二)
    WPF 之 INotifyPropertyChanged 接口的使用 (一)
    数据库访问框架 Chloe
    Navicat Premium 的破解安装教程
    C#定位文件位置并修改字节数据
  • 原文地址:https://www.cnblogs.com/chiwang/p/9360988.html
Copyright © 2020-2023  润新知