struts2框架怎么搭建?搭建struts2框架的步骤

struts2是一个基于mvc的web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器层来建立模型与视图的数据交互。那struts2框架怎么搭建?下面来我们就来给大家讲解一下。

搭建struts2框架的步骤.jpeg

1. 创建一个web项目。

2.导入必要的JAR文件。

struts2框架怎么搭建?搭建struts2框架的步骤.png

放在WEB-INF下lib包里。

3.添加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>StrutsDemo</display-name>
  <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>
    <!-- struts2.1.3之后的版本,可以在该过滤器之前之间定义一定的过滤器-->
    <!-- 定义struts2 的核心控制器,用于生成ActionMapper ,拦截所有的Action请求-->
    <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>
</web-app>

4.编写Action。

1. Struts2直接使用Action来封装HTTP请求参数,因此Action类应该包含与请求相对应的属性,并为该属性提供对应的setter和getter方法。

2. 为Action类里增加一个execute方法,因为Struts2框架默认会执行这个方法。这个方法本身并不做业务逻辑处理,而是调用其他业务逻辑组件完成这部分工作。

3. Action类返回一个标准的字符串,该字符串是一个逻辑视图名,该视图名对应实际的物理视图。

我们来写个用户登录验证,提供用户名和密码两个属性。如果正确返回success否则返回error。

package com.cy.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
    private static final long serialVersionUID = 1 L;
    private String userName;
    private String password;
    public String execute()
    {
        if (userName.equals("hellokitty") && password.equals("123"))
        {
            return SUCCESS;
        }
        else
        {
            return ERROR;
        }
    }
    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;
    }
}

Action有一下特点:

Struts2框架中Action是一个POJO,没有被代码污染。

Struts2中的Action的execute方法不依赖于servlet API,改善了Struts1中耦合过于紧密,极大方便了单元测试。

Struts2的Action无须用ActionForm封装请求参数。

5.添加框架核心配置文件struts.xml文件:在WEB-INF/classes文件夹下创建struts.xml。

在struts2-core-2.3.16.jar中有strust-defalut.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>
    <package name="default" extends="struts-default">
        <action name="login" class="com.cy.action.LoginAction">
            <result name="success">/jsp/success.jsp</result>
             <result name="error">/jsp/error.jsp</result>
        </action>
    </package>
</struts>

1. 在action标签中定义了name和class。name属性对应的是用户URL请求中的action名,class属性是处理请求的实现类(注意:要包含完整路径)。

2. result标签定义逻辑视图和物理视图之间的映射,在我们的Action中,如果返回的字符串是"success”则由对应的success.jsp页面进行处理;如果返回的字符串是"error”则由error.jsp页面进行处理。

6 编写界面

6.1 login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'Login.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  <body>
    <form action="login" method="post">
              用户名:<input type="text" name="userName"><br/>
              密    码:<input type="password" name="password"/><br/>
            <input type="submit" value="提交"/>
            <input type="reset" value="重置"/>
    </form>
  </body>
</html>

6.2 success.jsp

<body>
   <h1>登录成功!</h1>
  </body>

6.3 error.jsp

<body>
   <h1>登录失败!</h1>
  </body>

整体:

1.png

这样我们就完成了struts2框架搭建,struts2具有更加先进的架构以及思想,使用struts2能够自动封装参数、参数校验以及表单防止重复提交等优势。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

我的世界java版怎么导入存档?我的世界java版卡怎么办?

qt为什么运行不了项目?qt项目怎么运行?

我的世界java怎么做地图?我的世界java地图怎么安装?