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
相關文章
相關標籤/搜索