什么是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代表的是项目名。
本文向大家介绍Lua入门学习笔记,包括了Lua入门学习笔记的使用技巧和注意事项,需要的朋友参考一下 最近在使用Cocos2d-x + Lua来开发游戏。 游戏的主要逻辑将在Lua里写,之前没有接触过Lua,以下是我总结的入门笔记。 运算符 逻辑运算符 与:and 或:or 非:not 逻辑判断只有在false和nil时为假,其余均为真。 or和and会返回第一个断路的值。 Lua中没有C语言的三元
Go 入门的学习笔记,从零开始学 Go,做一个 Go 工程师。因工作需要,准备入坑,先从环境安装开始,输出一个 Hello World。 项目和源码地址:https://github.com/xinliangnote/Go
本文向大家介绍Objective-C的入门学习笔记,包括了Objective-C的入门学习笔记的使用技巧和注意事项,需要的朋友参考一下 对于一门语言得学习,个人觉得最主要得就是其语法格式和那些关键字。 因为对于基本现在大多数得语言,每种语言都是一种符合人思维得方式来与计算机交流。 因此,其实每种语言中定义或是封装好得基础类和类库,其实都是很相似得。 比如 int,double几种基本类型,Stri
本文向大家介绍JavaScript的MVVM库Vue.js入门学习笔记,包括了JavaScript的MVVM库Vue.js入门学习笔记的使用技巧和注意事项,需要的朋友参考一下 一、v-bind 缩写 二、v-on 缩写 三、过滤器 四、条件渲染 五、列表渲染 for 数组变动检测 Vue.js 包装了被观察数组的变异方法,故它们能触发视图更新。被包装的方法有:push(), pop(), shif
本文向大家介绍Struts2学习笔记(2)-路径问题解决,包括了Struts2学习笔记(2)-路径问题解决的使用技巧和注意事项,需要的朋友参考一下 在struts2中的路径问题是根据Action的路径而不是JSP的路径确定的,所以尽量不要使用相对路径,使用相对路径会让路径问题变得很繁琐很麻烦,有的时候一个细微的变动会导致你需要大的改动。 解决方法其实也很简单:即统一使用绝对路径。 在j
本文向大家介绍JavaScript的Vue.js库入门学习教程,包括了JavaScript的Vue.js库入门学习教程的使用技巧和注意事项,需要的朋友参考一下 Vue是一个小巧轻便的javascript库。它有一个简单易懂的API,能够让开发者在开发web应用的时候更加简易便捷。实际上,一直让Vue引以为豪的是它的便捷性、执行力、灵活性。 这篇教程的目的就是通过一些例子,让你能够概览一些基本的概念