美文网首页
Struts2 创建 Action 的三种方式

Struts2 创建 Action 的三种方式

作者: 奇梦人 | 来源:发表于2019-02-21 21:17 被阅读0次

1.Struts 基础配置

第一步创建 Struts 项目,添加依赖包...
这一步网上有很多资料,请自行查阅。

别忘记在 web.xml 文件中配置 Struts

    <filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

在项目 src 文件夹下创建 struts.xml 配置文件

image.png

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>
       <!--name 配置包名 -->
     <package name="mypage" namespace="/" extends="struts-default">
         <action name="RegistAction" class="com.ws.action.RegistAction" method="execute" >
             <!-- type = redirect  重定向-->
             <result name="success" type="redirect">/login.jsp</result>
             <result name="error" type="redirect">/404.jsp</result>
         </action>

     </package>

</struts>

配置包名随便写,namespace 是固定的, method 这个属性值填的是在Action中自己定义的方法,贴上代码一看就知道。至于 result 里面是通过execute 方法的返回值进行重定向。这便是创建 Action 的第一种方式

public class RegistAction extends ActionSupport implements ModelDriven<User>  {


    public User user=new User();
        
    public String execute() throws Exception{
        UserService  userService=new UserService();
        HttpServletRequest request = ServletActionContext.getRequest();
        String username= request.getParameter("username");
        String password= request.getParameter("password");
        int age =Integer.parseInt(request.getParameter("age"));
        String sex=request.getParameter("sex");
        boolean isSucess=userService.register(username,password,age,sex);
        if (isSucess){
            System.out.println("success");
           return "success";
        }else {
            System.out.println("error");
            return "error";
        }
    }

    @Override
    public User getModel() {
        return null;
    }


}

2.第二种

注意不是继承的 ActionSupport ,而是实现了 Action接口。


public class RegistAction2 implements Action{

    public String execute() throws Exception {
        // TODO Auto-generated method stub
            ....此处省略很多代码
        boolean isSucess=userService.register(username,password,age,sex);
        if (isSucess){
            System.out.println("success");
           return "success";
        }else {
            System.out.println("error");
            return "error";
        }
         
    }
} 

3.第三种

直接创建一个类,不继承和实现任何接口

public class RegistAction3 {
    public String execute() {
        if (isSucess){
             System.out.println("success");
             return "success";
        }else {
            System.out.println("error");
            return "error";
        }
    }
}

下面贴出三种的 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>
       <!--name 配置包名 -->
     <package name="mypage" namespace="/" extends="struts-default">

         <!--name 第一种 -->
         <action name="RegistAction" class="com.ws.action.RegistAction" method="execute" >
             <!-- type 才回去重定向-->
             <result name="success" type="redirect">/login.jsp</result>
             <result name="error" type="redirect">/404.jsp</result>
         </action>
         
             <!--name 第二种 -->
         <action name="RegistAction2" class="com.ws.action.RegistAction2" method="execute" >
             <!-- type 才回去重定向-->
             <result name="success" type="redirect">/login.jsp</result>
             <result name="error" type="redirect">/404.jsp</result>
         </action>

             <!--name 第三种 -->
         <action name="RegistAction3" class="com.ws.action.RegistAction3" method="execute" >
             <!-- type 才回去重定向-->
             <result name="success" type="redirect">/login.jsp</result>
             <result name="error" type="redirect">/404.jsp</result>
         </action>
     </package>

</struts>

相关文章

网友评论

      本文标题:Struts2 创建 Action 的三种方式

      本文链接:https://www.haomeiwen.com/subject/cnadyqtx.html