使用Maven配置Struts2

使用Maven配置Struts2

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


开发环境

Eclipse Mars.1 Release (4.5.1)

创建Maven Web项目

创建的项目文件结构如下图:
使用Maven配置Struts2_第1张图片
有没有人注意到项目有错误,打开index.jsp页面,提示

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

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

    
        javax.servlet
        servlet-api
        2.5
        provided
    

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

Maven配置servlt依赖

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

配置Struts2依赖

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

<dependency>
  <groupId>org.apache.strutsgroupId>
  <artifactId>struts2-coreartifactId>
  <version>2.5.1version>
dependency>

配置Web.xml

配置欢迎页面和过滤器:

<web-app>
  <display-name>Archetype Created Web Applicationdisplay-name>
    <welcome-file-list>
    <welcome-file>index.jspwelcome-file>
    welcome-file-list>
    <filter>
        <filter-name>struts2filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilterfilter-class>
    filter>

    <filter-mapping>
        <filter-name>struts2filter-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,配置内容如下:



<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

使用Maven配置Struts2_第2张图片
2.输入内容

使用Maven配置Struts2_第3张图片
3.显示输入的内容

使用Maven配置Struts2_第4张图片

小结

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

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

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

使用Maven配置Struts2_第5张图片

使用Maven配置Struts2_第6张图片

使用Maven配置Struts2_第7张图片

demo下载地址:下载

你可能感兴趣的:(Java)