Struts2学习笔记(1)-入门教程

 更新时间:2016年06月12日 10:38:47   作者:meaijojo  
本文是一个Struts2的简单入门教程,比较简单,希望能给大家做一个参考。

  什么是Structs2?它就是在Struts1的基础上演化而来的,是一种MVC模式的框架,其实它的功能很简单,就是将View和逻辑处理层分开。本人才疏学浅,以前都是用Spring做项目,由于要毕业,所以需要进行转行(暂且这么说吧),公司都是用的Structs框架,木有办法,从头开始学吧!

  所需软件-Eclipse、TomCat7.0、Struts-2.3.1.2(源码自己下载),下面以具体小项目来说明。

  首先是Struts2的工作原理:首先Tomcat对用户所输入的URL进行解析,将其中的项目名称解析出,然后程序查找所启动的项目,然后直接到配置文件web.xml中,根据web.xml文件的配置即filter查找到struts2的配置文件--struts.xml,然后根据其中的namespace,查找到用户所访问的action,然后跳转到用户所需的action界面。

  也许看着上面的比较麻烦,下面用一个典型的小项目来说明:

  1、打开Eclipse(注本Eclipse不是经典的而是下载的IDE版本,用于Web开发非常方便),新建一个Web Project,注意要按照next的方式进行,这样在最后一步可以选择到web.xml一项,省掉了手动添加的步骤。

  2、添加jar包,将下载的structs源码包解压,然后将其中的lib文件下你所用到的jar包添加进去,添加的位置WebContent-WEB-INF下的lib文件夹。

  3、添加struts.xml文件,最简单的struts.xml文件在所下载的struts源码的app中,可以从其中寻找一份,也可按以下方式自己写一份(最简单的),直接放到src的根目录下:


复制代码 代码如下:
<?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" />
<package name="front" namespace="/" extends="struts-default">
 
    <action name="index" class="com.myservice.web.Action02">
  <result name="success">/Index.jsp</result>
    </action>
</package>
</struts>

对以上内容做下说明:第6行的struts.devMode配置的是是否采用开发模式,开发模式的意思就是动态修改可以动态演示,无需重启server,它默认是false;第7行的package如同java的包一样,用于分类;namespace非常重要,是用于分割url的,如上所述,要打开的url为:......./index,其中的/代表namespcae,index则代表了action的name属性。action中的class是类,用于一些逻辑处理的普通java类;result则是转入的jsp(View)界面,上述的jsp界面放在WebContent根目录下。

  4、编写Java类-Action02,新建一个包com.myservice.web,然后新建一个Java类Action02,其内容很简单,

复制代码 代码如下:
package com.myservice.web;
 
import com.opensymphony.xwork2.ActionSupport;
 
public class Action02 extends ActionSupport{
 
    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        return "success";
    }
 
}

就是覆写execute方法,直接返回了一个字符串success,这个字符串是和action中result的那么属性所对应的。

另还有两种方法可以完成class的功能,但是都不常用,一种是不继承任何的类和接口,直接写一个execute方法,也是返回String;另外一种则是写一个class实现Action接口,然后覆写Action的execute方法,其实ActionSupport也是实现了Action接口,但是它还另外实现了很多方法,可以非常方便的使用,因此在开发中都采用继承ActionSupport类的方式。

  5、编写JSP文件,在WebContent根目录下新建一个jsp文件,注意要将其语言设置为utf-8,,如:

复制代码 代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>MyWeb02</title>
    </head>
    <body>
        <h1>明日复明日,明日何其多</h1>
    </body>
</html>

通过上述工作,就完成了最简单的编写,然后就可以启动server(Tomcat7.0)了,在浏览器中输入http://localhost:8080/xxx/index,其中的xxx代表的是项目名。

相关文章

  • Java多线程状态及方法实例解析

    Java多线程状态及方法实例解析

    这篇文章主要介绍了Java多线程状态及方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Mybatis传递多个参数的三种实现方法

    Mybatis传递多个参数的三种实现方法

    这篇文章主要介绍了Mybatis传递多个参数的三种实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java错误org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sjks.mapper.Use

    Java错误org.apache.ibatis.binding.BindingException: Inval

    本文主要介绍了Java错误org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.sjks.mapper.Use,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java中Integer两种转int方法比较

    Java中Integer两种转int方法比较

    本文主要介绍了Java Integer两种转int方法比较。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Java协议字节操作工具类详情

    Java协议字节操作工具类详情

    这篇文章主要介绍了Java协议字节操作工具类详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Mybatis-plus自动填充不生效或自动填充数据为null原因及解决方案

    Mybatis-plus自动填充不生效或自动填充数据为null原因及解决方案

    本文主要介绍了Mybatis-plus自动填充不生效或自动填充数据为null原因及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Maven重复依赖问题解决(同一个jar多个版本)

    Maven重复依赖问题解决(同一个jar多个版本)

    本文主要介绍了Maven重复依赖问题解决(同一个jar多个版本),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • springboot如何获取请求者的ip地址

    springboot如何获取请求者的ip地址

    在Spring框架中,可以使用拦截器(Interceptor)来监听每个控制器(Controller)的请求,并记录请求者的IP地址,这篇文章主要介绍了springboot如何获取请求者的ip地址,需要的朋友可以参考下
    2024-07-07
  • 用Java实现简单画板功能

    用Java实现简单画板功能

    这篇文章主要为大家详细介绍了用Java实现简单画板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 使用java的Calendar对象获得当前日期

    使用java的Calendar对象获得当前日期

    本文给大家分享的是使用使用java的Calendar对象获得当前日期的上几个度开始、结束时间,主要思路是先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期,十分的实用,小伙伴们可以参考下。
    2015-07-07

最新评论