Struts2

作者: 火焰与柠檬 | 来源:发表于2016-08-17 19:47 被阅读0次

    在eclipse使用struts2,配置流程:

    准备工作:

    • 下载好struts2的jar包
    • 建立一个web项目
    • 导入struts的jar包(不能全部导入,不然会报错)
    工程结构目录

    需要配置的文件:

    • web.xml
    • struts.xml(放在src目录下,不然会报错)
    • 一个用来测试的Action类
    • 一个用来测试的jsp页面

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>PharmacySystem</display-name>
     <filter>
        <!-- 定义核心Filter的名字 -->
        <filter-name>struts2</filter-name>
        <!-- 定义核心Filter的实现类 -->
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    
    <filter-mapping>
        <!-- StrutsPrepareAndExecuteFilter用来处理所有的HTTP的请求 -->
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    </web-app>
    

    struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC  
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
        "http://struts.apache.org/dtds/struts-2.0.dtd">  
        
      <struts>
        <!-- package是包名 extents使用默认值 -->
        <package name="login" extends="struts-default">
            <!-- 定义login的action,name是login,实现类为LoginAction(要在前面加上包名) -->
            <action name="login" class="login.LoginAction"></action>
        </package>
    </struts>
    

    login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text-html"; charset="GBK">
        <title>登录页面</title>
    </head>
    <body>
        <form action="login" method="post">
            <table>
                <caption><h3>用户登录</h3></caption>
                <tr>
                    <td>用户名:<input type="text" name="username"/></td>
                </tr>
                <tr>
                    <td>密&nbsp;&nbsp;码:<input type="text" name="password"/></td>
                </tr>
                <tr align="center">
                    <td colspan="2"><input type="submit" name="登录"/><input type="reset" name="重置"/></td>
                </tr>
            </table>
        </form>
    </body>
    </html>
    

    LoginAction

    package login;
    
    import com.opensymphony.xwork2.Action;
    
    public class LoginAction implements Action{
    
        private String username;
        private String password;
        
        @Override
        public String execute() throws Exception {
            // TODO Auto-generated method stub
            if (getUsername().equals("xuz")&&getPassword().equals("123")) {
                
                System.out.println("二哥是只猪");
                
                return SUCCESS;
            }else {
                
                System.out.println("二哥是条狗");
                
                return ERROR;
            }
        }
        
        //username
        public void setUsername(String username) {
            this.username = username;
        }
        public String getUsername() {
            return username;
        }
        //password
        public void setPassword(String password) {
            this.password = password;
        }
        public String getPassword() {
            return password;
        }
    }
    

    注意:

    1. 这里的LoginAction还是要手动的在类里面implements Action,否则话不能重载execute方法(在创建的时候,不知道为什么不能直接继承Action类,只能创建好以后在类中添加了)。

    2. 导入包的时候不能全部导入,导入几个基本的即可,另外要注意包的名称和版本,否则的话会报找不到xxx类的错误。

    3. 其他的错误一般就是由web.xml和struts.xml文件内容错误引起的。比如配置的类的路径不对
    之类的问题。

    相关文章

      网友评论

          本文标题:Struts2

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