Struts·入门二

struts结果处理 得到servletAPI 参数得到方式html

一:结果处理java

  1.导包web

  2.配置struts文件apache

<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 中核心过滤器api

<!-- 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类session

public class ResultMessage extends ActionSupport{

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

二:得到servlet API app

  1.导包dom

  2.配置struts文件jsp

<?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类 ide

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
相关文章
相关标签/搜索