struts2 小案例

pom.xml

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <!--获取ServletAPI-->
    <dependency>
        <groupId>javaee</groupId>
        <artifactId>javaee-api</artifactId>
        <version>5</version>
    </dependency>

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.3.4.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.struts.xwork</groupId>
        <artifactId>xwork-core</artifactId>
        <version>2.3.4.1</version>
    </dependency>

</dependencies>

web.xml
<!DOCTYPE web-app PUBLIC
                "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
                "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--解决编码的过滤器-->
<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>
<welcome-file-list>
  <welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>

struts.xml
<?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="default" namespace="/" extends="struts-default">
        <action name="userAction" class="cn.happy.action.UserAction">
            <result name="success">/success.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
    </package>
</struts>
UserAction:
package cn.happy.action;

import cn.happy.entity.Userinfo;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.util.ValueStack;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Map;

/**
 * Created by Happy on 2017-10-22.
 *       类 Action
 */
public class UserAction implements Action,ServletRequestAware,ServletContextAware {
    //SpringMvc Controller
    private HttpServletRequest servletRequest;
    private ServletContext servletContext;
    private Userinfo userinfo;
    public String execute() throws Exception {
        if ("admin".equals(userinfo.getUsername())&&"admin".equals(userinfo.getPassword())){
            //登录成功获取的用户名
          /*    //第一种方式
            ActionContext context1=ActionContext.getContext();
            Map<String, Object> map = context1.getSession();
            map.put("username",userinfo.getUsername());*/
            //放入植栈
            /*ValueStack valueStack = ActionContext.getContext().getValueStack();
            valueStack.push(map);*/
          /*  HttpServletRequest request = ServletActionContext.getRequest();
            ValueStack vs= (ValueStack)request.getAttribute("struts.valueStack");
            vs.push(map);*/
            //第二种方式
            HttpSession session= ServletActionContext.getRequest().getSession();
            session.setAttribute("username",userinfo.getUsername());
           //第三种方式
           /* HttpServletRequest request=ServletActionContext.getRequest();
            request.getSession().setAttribute("username",userinfo.getUsername());*/
            //第四种方式
           /* ServletContext context=ServletActionContext.getServletContext();
            context.setAttribute("username",userinfo.getUsername());*/
            return SUCCESS;
        }else {
            return INPUT;
        }

    }

    public Userinfo getUserinfo() {
        return userinfo;
    }

    public void setUserinfo(Userinfo userinfo) {
        this.userinfo = userinfo;
    }

    public void setServletRequest(HttpServletRequest httpServletRequest) {
      this.servletRequest=httpServletRequest;
    }

    public void setServletContext(ServletContext servletContext) {
     this.servletContext=servletContext;
    }
}
登录成功后的页面:
login.jsp:
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<s:form method="POST" action="userAction">
    <%--性能低--%>
    请输入用户名: <s:textfield  name="userinfo.username"></s:textfield> <br/>
    <s:textfield name="userinfo.password"></s:textfield><br/>
    <s:submit value="登录"></s:submit>
</s:form>
</body>
</html>
success.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<s:debug/>
<%--第一种方式
     欢迎<s:property value="userinfo.username"/>--%>
<%--第二种方式--%>
   <%--欢迎<s:property value="userinfo.username"/>--%>
<s:property value="#session.username"></s:property>


</body>
</html>


action 继承 ActionSupport
public class fristAction extends ActionSupport {
    public  String del(){
        Map<String,Object> result=(Map<String,Object>)ActionContext.getContext().get("request");
        result.put("username","张三");
        return "del";
    }
   public String list(){
      Map<String,Object> result=(Map<String,Object>)ActionContext.getContext().get("request");
       Object username=result.get("username");
       System.out.println(username);
      result.put("username","张三");
        return "list";
}
}
配置:
<?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>
    <constant name="struts.devMode" value="true"/>
    <!--动态方法开启! value设置为true-->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

    <!--<package name="cn.happy.day03manymethod" namespace="/" extends="struts-default">
        <action name="fristAction" class="cn.happy.day03manymethod.fristAction" method="update">
            <result name="update">/day-03/del.jsp</result>
            &lt;!&ndash;1.动态方法开启!&nd    ash;&gt;
            <result name="list">/day-03/list.jsp</result>
        </action>-->
        <!--<action name="userAction" class="cn.happy.day03manymethod.fristAction" method="list">
            <result name="list">/day-03/list.jsp</result>
           </action>-->

       <!-- 2.通配符 *_*  第一个* 代表Action的类名 第二个*代表Action中的方法名-->
       <!--{1}见第一个*对应的类替换到该处   将第一个*对应的真实内容替换到该处-->
     <!--<package name="cn.happy.day03manymethod" namespace="/" extends="struts-default">
        <action name="*_*" class="cn.happy.day03manymethod.{1}" method="{2}">
            <result name="{2}">/day-03/{2}.jsp</result>
        </action>
     </package>-->
   <!-- 结果类型 redirect 直接转发到页面-->
    <package name="cn.happy.day03manymethod" namespace="/" extends="struts-default">
        <action name="fristAction" class="cn.happy.day03manymethod.fristAction" method="list"  >
            <!--redirect-->
           <!-- <result name="{2}" type="redirect">/day-03/{2}.jsp</result>-->
          <!--  redirection 转发到Action-->
            <result name="{2}" type="redirectAction">
                <param name="actionName">addhh</param>
                <param name="namespace">/</param>
            </result>
        </action>
        <action name="addhh" class="cn.happy.day03manymethod.fristAction" method="add"  >
            <result name="fristAction">/day-03/add.jsp</result>
        </action>
    </package>
</struts>
页面同上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值