struts 2.5.1第一个测试应用

首先我是个小白,如果写的不正确的希望大家指正.我的ide是intelliJ IDEA 2015;JAVA版本 1.70_79;tomcat 7.0.61

1、最新版本的struts2.5取消了xwork*.jar也就是在lib中你会发现该文件不再存在,原因是被合并入struts核心文件中,下面是说明(2.5的部分特性):

- XWork source was merged into Struts Core source, it means that there
be no more xwork artifact nor dedicated jar
- OGNL was upgraded to version 3.0.11 and it breaks access to
properties as it follows Java Bean Specification, see WW-4207 and
WW-3909
- Spring dependency for tests and spring plugin was upgraded to
version 4.1.6, see WW-4510.
- Struts2 internal logging api was marked as deprecated and was
replaced with new Log4j2 api as logging layer, see WW-4504.
- Struts2 is now build with JDK7, see WW-4503.
- New plugin to support bean validation is now part of the
distribution, see WW-4505.
- Deprecated plugins are now removed from the distribution and are not
longer supported anymore.
- - Dojo Plugin
- - Codebehind Plugin
- - JSF Plugin
- - Struts1 Plugin

2、首先最新的struts2.5.1下载下来的lib太多了。 如果把说有的都放入反而直接报错,应用都启动不了。下面我列出我使用的jar包:

commons-fileupload-1.3.1.jar

commons-io-2.4.jar

commons-lang3-2.4.jar

commons-logging-1.1.3.jar

freemarker-2.3.23.jar

javassist-3.20.0-GA.jar

log4j-api-2.5.jar

log4j-core-2.5.jar

log4j-jcl-2.5.jar

ognl-3.1.8.jar

struts2-core-2.5.1.jar

3、上述文放入lib然后在设置Artifacts是需要把上述lib都同时打包发布到out war包中,否则编译总会提示找不着struts类


4、添加filter到web.xml中,其中filter class和以前版本的不同之处在于取消了ng包,直接如下:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
5、在WEB-INF/classes 下创建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">

<!-- START SNIPPET: xworkSample -->
<struts>
    <constant name="struts.i18n.encoding" value="utf-8"></constant>
    <package name="default" extends="struts-default">
        <action name="login" class="com.wxt.app.action.LoginAction" method="execute">
            <result name="success">/welcome.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>
6、创建 com.wxt.app.action.LoginAction类,其中类中指实现了userName 和passWork两个属性,并实现getter setter,另增加了默认调用方法execute,代码如下:

package com.wxt.app.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by wuxiutong on 16/6/27.
 */
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;
    }
    public String execute() throws  Exception{
        if (getUserName().equals("1")&&getPassWord().equals("1")) {
            return "success";
        }
            else return "error";
        }
}
6、创建login.jsp,welcome.jsp以及error.jsp后两者是响应文件,前者是信息输入页面,登录成功后跳转至welcom.jsp否则跳转至error.jsp。响应配置依赖于struts.xml的action节点下result的设置,只需将execute执行返回结果字符创和result的name相同即可。

login.jsp的内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>用户登录</title>
  </head>
  <body>
<form action="login">
  <input type="text" name="userName"><br/>
  <input type="text" name="passWord"><br/>
  <input type="submit" name="submit" value="登录"><br/>
</form>
  </body>
</html>
其中的action值‘login’对应到struts配置的action的name,表明提交后执行那个action。welcome.jsp和error.jsp body中则只写了“登录成功”和“登录失败”。

现在启动应用即可实现一个简单的struts2.5.1的登录案列。输入用户名:1 和密码:1即可跳转至welcome登录成功,否则跳转至error登录失败。

评论 1 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

uncle_wu

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值