使用Maven配置Struts2

使用Maven配置Struts2

最近想学习下java的ssh框架,先从Struts2开始吧:


开发环境

Eclipse Mars.1 Release (4.5.1)

创建Maven Web项目

创建的项目文件结构如下图:
Maven Web项目结构图
有没有人注意到项目有错误,打开index.jsp页面,提示

The superclass “javax.servlet.http.HttpServlet” was not found on the
Java Build Path

在pom.xml文件中添加Servlet依赖引用即可修正错误

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>

保存就会自动下载相应的jar文件,如下图:

Maven配置servlt依赖

创建Maven项目时候碰到一些奇怪的问题,都通过上网查询得到解决,这里就不列举了。

配置Struts2依赖

可参考https://struts.apache.org/docs/version-notes-251.html
在pom.xml添加:

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

配置Web.xml

配置欢迎页面和过滤器:

<web-app>
  <display-name>Archetype Created Web Application</display-name>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <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>

</web-app>

用的版本比较新,配置Web.xml时稍微跟网上的有些文章不一样。之前版本过滤器用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
现改为org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

创建Action类

在src/main目录下添加【java】文件夹,添加一个包文件夹,并创建类LoginAction继承ActionSupport类,并重写execute方法:

package com.hurricane.action;

import java.io.IOException;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    public String Name;
    public int Age;

    public String getResult() {
        return Result;
    }

    public void setResult(String result) {
        Result = result;
    }

    public String Result;

    public String getName() {
        return Name;
    }

    public void setName(String name) {
        Name = name;
    }

    public int getAge() {
        return Age;
    }

    public void setAge(int age) {
        Age = age;
    }

    @Override
    public String execute() throws Exception {
        this.setResult("name:" + Name);
        this.setResult(this.getResult() + "&age:" + String.valueOf(Age));
        return "success";
    }

}

修改index.jsp

简单的提交两个字段,姓名和年龄到后台,后台格式化后返回到前台,练习下Strut2取得前端请求的值和前端显示服务器响应的值。文件内容如下:

<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page pageEncoding="UTF-8"%>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
    <h2>Hello World!</h2>

    <form action="login">
        <s:property value="Result" />
        <br /> 姓名<input type='text' name="Name"> <br /> 年龄<input
            type='text' name=Age> <input type="submit" value="提交">
    </form>
</body>
</html>

配置Struts文件

在src/main/resources文件夹下添加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>
    <constant name="struts.devMode" value="true"></constant>  
    <constant name="struts.i18n.encoding" value="UTF-8"></constant> 
    <constant name="struts.locale" value="zh_CN"></constant> 

    <package name="hurricane" extends="struts-default">
        <action name="login" class="com.hurricane.action.LoginAction">
         <result>  
           index.jsp
        </result>  
        </action>
    </package>
</struts>

运行程序

1.首次打开Index.jsp

这里写图片描述
2.输入内容

这里写图片描述
3.显示输入的内容

这里写图片描述

小结

本文只是简单的记录如果使用struts框架,struts框架还有很多其他功能,注意以下几个方面:

1.jsp页面使用Struts标签,要将 <%@ taglib uri=”/struts-tags” prefix=”s”%> 添加到页面中

2.涉及到中文统一使用utf-8,修改的地方包括以下三个地方:

这里写图片描述

这里写图片描述

这里写图片描述

demo下载地址:下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值