Struts2配置(Struts开发流程)

手动配置Struts2

下载Struts2和配置web.xml

1.点击这里进入下载struts-2.3.31-all.zip Struts2.3的最后一个版本。

2.解压struts-2.3.31-all.zip,可以看到如下:
这里写图片描述

3.进入apps->找到struts2-blank.war->解压到一个自己创建的文件夹(例如:struts2-blank)
这里写图片描述

4.进入struts2-blank文件下->进入WEB-INF->进入lib,这些就是我们要引入的jar包:
这里写图片描述

5.把这些jar包复制到我们Web Project的WEB-INF/lib路径下。
这里写图片描述

6.接下来编辑我们Web Project的web.xml配置文件,配置Struts2的核心Filter。(复制粘贴就行,不用自己打)
(1)依旧进入刚才的struts2-blank->WEB-INF->web.xml,打开,拷贝如下:

<!-- 定义Struts2的核心Filter(我们之前JavaEE学的过滤器) -->
 <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 让Struts2的核心Filter拦截所有请求 -->
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

(2)配置好的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>Struts2_1000</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>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

实例:增加登录处理

1.创建JSP页面login.jsp(登录页面,这里把jsp页面放在WebRoot/WebContent路径下,比较专业点…,看代码感觉这本书的作者闲的当疼…)
(路径:/Struts2_1000/WebRoot/WebContent/login.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
    <head>
        <title><s:text name="LoginPage"/></title>
    </head>
    <body>
        <s:form action="login">
            <s:textfield name="username" key="user"/>
            <s:textfield name="password" key="pass"/>
            <s:submit key="login"/>
        </s:form>
    </body>
</html>

2.创建welcome.jsp和error.jsp:登陆成功页面和登录失败页面,这个自己随便写就行,JSP页面记得放在我们刚才的WebContent路径下,比较好一点。

3.前面定义login.jsp页面中登录表单时指定该表单的action为login,因此我们还必须定义一个Struts2的Action,Struts2的Action通常应该继承ActionSupport基类,重写execute()方法。
(路径:/Struts2_1000/src/csdn/slow/app/action/LoginAction.java)

package csdn.slow.app.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }

    //定义处理用户请求的execute方法
    public String execute() throws Exception {
        if(getUsername().equals("slow") && getPassword().equals("slow")) {
            ActionContext.getContext().getSession().put("user", getUsername());
            return SUCCESS;
        }
        return ERROR;
    }
}

用户名和密码为slow,就认为登录成功。

4.创建和配置struts.xml(还是复制粘贴,不用自己写)
(1)把刚才struts-blank里面的struts.xml复制到Web Project的src文件夹里,配置好的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>
    <!-- 指定全局国际化资源文件 -->
    <constant name="struts.custom.i18n.resources" value="mess"/>
    <!-- 指定国际化编码所使用的字符集 -->
    <constant name="struts.i18n.encoding" value="GB18030"/>
    <!-- 所有的Action定义都应该放在package下 -->
    <package name="slow" namespace="/" extends="struts-default">
        <action name="login" class="csdn.slow.app.action.LoginAction">
            <!-- 定义三个逻辑视图和物理资源之间的映射 -->
            <result name="input">/WebContent/login.jsp</result>
            <result name="error">/WebContent/error.jsp</result>
            <result name="success">/WebContent/welcome.jsp</result>
        </action>
    </package>

</struts>

补充:这里还要再编写一份mess.properties(…感觉一个例子就应该简单点),如下:

loginPage=\u767B\u5F55\u9875\u9762
errorPage=\u9519\u8BEF\u9875\u9762
succPage=\u6210\u529F\u9875\u9762
failTip=\u5BF9\u4E0D\u8D77\uFF0C\u4F60\u4E0D\u80FD\u767B\u5F55\uFF01
succTip=\u6B22\u8FCE\uFF0C{0}\uFF0C\u60A8\u5DF2\u7ECF\u767B\u5F55\uFF01
user=\u7528\u6237\u540D
pass=\u5BC6\u7801
login=\u767B\u5F55

5.部署项目和测试:

意外(惊喜):ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

解决方案点击这里
自学真的好苦逼。。。O__O “…
这里写图片描述
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值