`
银翼魔术师
  • 浏览: 1902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

struts2框架的简单搭建

阅读更多
之前一直用的struts1,最近换了工作接触了struts2和spring mvc,这里先介绍一下我自己搭建的struts2,网上找过一些资料,但是很多都是windows平台下面用myeclipse插件的方法,公司电脑是ubuntu,我只有最基本的eclipse,其实用不用插件都一样。就是把相关的jar包导入,配置文件写写就ok了。

废话不说了,开始将过程。

一.eclipse工具的准备

  ubuntu下安装eclipse很简单,用aptitude命令就行,安装好之后,自己安装一些必要的支持web开发的插件,在help-install new software

二.新建一个web项目
  比如就叫testStruts2,新建好的目录结构如下:
  /testStruts2
  /testStruts2/src
  /testStruts2/src/sury/test/ssh2/action/LoginAction.java
  /testStruts2/src/struts.xml   (需要手动新建)
  /testStruts2/WebContent
  /testStruts2/WebContent/WEB-INF
  /testStruts2/WebContent/login.jsp  (需要手动新建)
  /testStruts2/WebContent/welcome.jsp  (需要手动新建)
  /testStruts2/WebContent/WEB-INF/classes
  /testStruts2/WebContent/WEB-INF/lib
  /testStruts2/WebContent/WEB-INF/web.xml  (需要手动新建)
基本的web项目目录结构就是这样,没有的自己手动添加一下,如果用myeclipse这些应该都是可以自动生成的。src目录下是源码,struts.xml要放在这下面,我测试过将struts.xml改名成struts-default.xml也可以,为什么我在研究,这里只要有这个文件就行。WebContent目录下面是用于部署到tomcat里的,src下面的东西都会被编译到WebContent/WEB-INF/classes这下面,/WebContent/login.jsp这个用来做登录页面,WebContent/welcome.jsp这个做登录成功的跳转页面,登录失败页面我省略了。
/WEB-INF/lib下面需要struts相关的jar包,要自己导入
freemarker-2.3.16.jar
ognl-3.0.jar
javassist-3.7.ga.jar
struts2-core-2.2.1.1.jar
xstream-1.3.1.jar
xwork-core-2.2.1.1.jar
以上包都需要
commons-pool-1.3.jar
commons-io-1.3.2.jar
commons-fileupload-1.2.1.jar
commons-dbcp-1.2.2.jar
commons-codec-1.3.jar
我的目录下都有,不知道是不是必须的,建议直接网上下载全部struts2 jar包直接扔进去
三.配置文件
1.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<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.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2.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>

    <package name="default" namespace="/" extends="struts-default">
        <action name="login" class="sury.test.ssh2.action.LoginAction" method="execute">
            <result name="success">/welcome.jsp</result>
            <result name="login">/login.jsp</result>
        </action>
    </package>

</struts>

3.login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  
    <title>Login</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">

  </head>

  <body>
  
   <s:form action="/login" method="post">
    <s:label value="系统登陆"></s:label>
    <s:textfield name="username" label="账号" />
    <s:password name="password" label="密码" />
    <s:submit value="登录" />
   </s:form>

  </body>
</html>

4.welcome.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  
    <title>My JSP 'welcome.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">


  </head>

  <body>
   欢迎${username }!
  </body>
</html>

5.action
package sury.test.ssh2.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {//该类继承了ActionSupport类。这样就可以直接使用SUCCESS, LOGIN等变量和重写execute等方法

private static final long serialVersionUID = 1L;
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;
}

@Override
public String execute() throws Exception {
  if("admin".equals(username) && "pwd".equals(password))//如果登录的用户名=haha并且密码=hehe,就返回SUCCESS;否则,返回LOGIN
   return SUCCESS;  //这里SUCCESS和LOGIN都是大写,是常量对应的字符串是小写的
   return LOGIN;
}
}

四.部署测试
页面输入localhost:port/testStruts2/

五.小结
struts配置主要是action的配置,附上一个连接,讲解action比较好的
http://blog.csdn.net/ldl420783321/article/details/7546607
还有一个讲解struts2配置文件比较详细的
http://www.cnblogs.com/fmricky/archive/2010/05/20/1740479.html
1.struts配置动态方法action
动态方法调用是在action的名字中使用感叹号(!)来标识要调用的方法名,其语法格
式为 actionName!methodName.action
2.默认action
如果请求一个不存在的action,结果将是HTTP404错误。在Struts2中,可以指定一个默认的action,如果一个请求没有其他的action匹配,那么默认的action将被执行。
默认的action使用default-action-ref元素来声明,如下所示:
<default-action-ref name="error"></default-action-ref>   
注意:每个包中都可以有它自己默认的action,但是每一个名称空间应该只有一个默认action。如果具有相同名称空间的多个包中都声明了默认action,那么哪一个action才是默认的将无法保证。

    注意:默认action只对action的访问有效。如果你访问一个非action的资源,例如/user.jsp,而该页面不存在,这时仍会看到HTTP404错误。如果想为整个Web应用程序指定默认页面,需要在web.xml文件中对HTTP404错误指定相应的错误处理页面。
3.通配符映射
随着Web应用程序的增加,所需的Action也会更多,从而导致大量的action映射,使用通配符可以减少action配置的数量,使一些具有类似行为的Action或者Action方法可以使用通用的样式来配置。

      通配符即星号(*),用于匹配0个或多个字符,在配置action时,可以在action元素的name属性中使用星号(*)来匹配任意的字符。

             以下是在action映射中使用通配符:
               <action name="news*"         

class="org.struts2.lesson05.News{1}Action">

                    <result name="success">/WEB-INF/News/{1}.jsp</result>

        </action>

      我们在action元素的name属性中使用了通配符(*),允许这个映射匹配所有以/news开始的URL,例如/newsAdd,/newsEdit,/newsDelete,但是,如果请求的是/newsEdit/add,那么这个映射就不会被匹配。

      在上面,有一个特殊的记号{1},这是作为占位符使用的,它将被通配符所匹配的值替换,例如访问/newsEdit,通配符(*)匹配的部分是Edit,那么,这个值将替换{1},最终调用的类是org.struts2.lesson05.NewsEditAction,Action

   执行成功后导向的结果页面是/WEB-INF/News/Edit.jsp。

      在action映射和action结果中,通配符匹配的值可以用记号{N}来访问,N是从1到9的数字,指出替换的是哪一个通配符匹配的值。整个请求URL可以用记号{0}来访问。例如如下的action映射:
     <action name="*_*" class="org.struts2.lesson05.{1}Action" 

method="{2}">

            <result>/WEB-INF/News/{0}.jsp</result>

        </action>

      当访问/News_delete时,name属性中的第一个”*”匹配News,第二个”*”匹配delete,class属性中使用的记号是{1},所以被News所替换,method属性中使用的记号是{2},于是被delete所替换。结果映射中使用的记号是{0},于是被整个URL替换,即News_delete所替换。整个替换后的结果是:当请求/News_delete时,框架调用NewsAction实例的delete方法对请求进行处理。执行成功后,请求被导向到/WEB-INF/News/News_delete.jsp页面。

      通配符方法设置的另一种常见方式是使用后缀通配符,即将”*”放在action名字的后面,在”*”和名字前缀之间使用一个特殊字符作为分隔,常用的特殊字符是下划线(_),当然也可以使用其他字符。例如:

               <action name="News_*"

class="org.struts2.lesson05.NewsAction" method="{1}">

                    <result>/WEB-INF/News/{0}.jsp</result>

        </action>

       当请求/News_delete时,调用的是NewsAction实例的delete方法,当请求/News_edit的时候,调用的是NewsAction实例的edit方法
分享到:
评论

相关推荐

    Struts2框架搭建

    在本项目中,我们将会深入探讨如何搭建Struts2框架,并实现一个基础的应用。 首先,理解Struts2的核心概念至关重要。Struts2是一个基于Servlet的框架,它通过拦截器来处理HTTP请求,提供了灵活的控制层结构,使得...

    struts2框架手工搭建带jar包

    这个“struts2框架手工搭建带jar包”资源是为初学者设计的,旨在帮助他们理解并实践Struts2框架的安装和配置过程。 在手动搭建Struts2框架时,首先需要了解其核心组件和依赖。Struts2的核心组件包括Action、Result...

    struts2框架详细搭建教程

    本教程旨在帮助初学者从零开始搭建Struts2框架,并通过一个简单的示例来演示整个过程。以下内容将详细介绍如何创建项目、导入必要的JAR包、配置约束文件以及测试Struts2框架的基本功能。 #### 二、搭建环境 1. **...

    Struts2框架搭建教程

    Struts2框架搭建教程,适合初学者,一步一步的教大家怎么搭起框架,简单易懂

    struts2入门框架搭建需要的jar

    本文将深入探讨Struts2入门框架搭建过程中需要的核心jar文件及其作用。 1. **struts2-core-2.5.16.jar**:这是Struts2的核心库,包含了框架的主要组件,如Action、Result、Interceptor等。它提供了解析请求、执行...

    struts 简单框架搭建

    以上就是一个基础的Struts2框架搭建过程。虽然这里没有涉及Spring框架,但在实际项目中,通常会结合Spring进行更复杂的业务逻辑处理和依赖注入,以提高应用的可维护性和扩展性。Struts2与Spring的整合可以简化对象的...

    struts1框架环境搭建视频(登录小例子)

    本教程通过一个简单的登录实例,将引导你了解如何搭建Struts1框架环境并进行实际开发。 首先,我们需要安装和配置Java Development Kit (JDK) 和 Apache Tomcat 服务器,这是运行Struts1应用的基础。确保你的系统...

    struts2框架的搭建与程序

    ### Struts2框架的搭建与程序 #### Struts2框架简介及...综上所述,Struts2框架的搭建与配置相对简单明了,通过遵循上述步骤,开发者可以快速地搭建起一个基本的Web应用程序环境,并开始进行更为复杂的业务逻辑开发。

    javaweb Struts2 框架搭建方法与空框架模型

    下面将详细介绍Struts2框架的搭建过程、基本概念以及如何使用提供的空白框架模型进行开发。 1. **Struts2框架基础** - **MVC模式**:Struts2遵循MVC设计模式,将应用分为模型、视图和控制器三个部分,分别负责业务...

    struts2框架所需jar包

    struts2框架所需要的jar包,包括commons-logging-1.0.4.jar,struts2-core-2.0.11.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,xwork-2.0.4.j等,希望对大家有用!

    Struts2框架搭建(源码)

    Struts2框架搭建(源码) 一向web项目中添加struts2依赖库 二在webxml中添加Struts过滤器 三在classpath下添加strutsxml 四Loginjava 五indexjsp 六将项目部署到tomcat下 博文地址:...

    struts2框架搭建

    最后,通过在浏览器中输入类似"http://localhost:8080/your_project_name/hello.action"的URL,我们就可以看到Struts2框架搭建成功,并显示了TestAction中execute()方法返回的欢迎信息。 总结,搭建Struts2框架主要...

    J2EE的框架搭建 Struts框架的搭建

    在这个“J2EE的框架搭建 Struts框架的搭建”主题中,我们将深入探讨如何设置Struts2框架以及它所包含的关键组件。 首先,让我们了解一下Struts2的核心概念。Struts2的核心是Action类,它是业务逻辑的入口点。当用户...

    Struts2基础框架搭建

    以上就是Struts2基础框架搭建的基本流程和关键知识点。在实际开发中,你还可以深入学习更多高级特性,如动态方法调用、插件机制、文件上传下载、国际化支持等,以提高开发效率和代码质量。对于初学者来说,理解并...

    Struts2框架搭建(项目源码)

    Struts2框架搭建(项目源码) 一向web项目中添加struts2依赖库 二在webxml中添加Struts过滤器 三在classpath下添加strutsxml 四Loginjava 五indexjsp 六将项目部署到tomcat下 博文地址:...

    struts2框架学习笔记整理

    #### 二、Struts2框架搭建与配置 ##### 2.1 导入Jar包 - **下载Struts2的Jar包**:首先需要下载Struts2的库文件,通常包含多个必需的Jar包,如`struts2-core-2.3.24.jar`等。 - **添加必要的第三方库**:注意避免...

    hibernate4+spring3+struts2搭建框架实例

    这个“hibernate4+spring3+struts2搭建框架实例”旨在为初学者提供一个快速上手的环境,通过实体类与数据库交互,实现数据持久化。 Struts2是MVC(Model-View-Controller)架构模式的一个实现,主要用于控制应用...

    struts2 框架搭建

    在"struts2 框架搭建"的过程中,首先我们需要理解MVC架构的基本概念。MVC模式将应用分为三个主要部分:Model(模型)负责业务逻辑,View(视图)处理用户界面,而Controller(控制器)处理用户的请求,并协调Model和...

Global site tag (gtag.js) - Google Analytics