Struts2应用的开发流程
Struts2的开发流程
为了能够在eclipse中使用Struts2在进行开发时,需要根据需要导入一些有关的jar包;
在官网下载相关的压缩包,这里下载了两个:struts-2.3.30-all.zip和struts-2.3.30-docs.zip,解压到同一个文件夹中。
在eclipse中新建了新的Dymamic Web Project以后,为该项目添加Struts2支持:
1.复制Struts2解压目录下struts2-blank.war解压后WEB-INF\lib目录下的所有jar包到web项目中的WebContent\WEB-INF\lib下;
2.把这些复制的jar包导入项目中去。
开始使用Struts2开发:
1.在web.xml中定义拦截器拦截用户请求:
如果eclipse中生成的Dynamic Web Project中没有自动生成web.xml文件,可以从Tomcat相关的文件夹中找到一个默认的web.xml文件,把此文件复制到项目的WEB-INF目录下(不是WEB-INF\lib下)。
也可以在struts2-blank.war解压后目录的WEB-INF下直接复制一个web.xml。
修改此web.xml文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.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>
</web-app>
2.定义包含表单数据的JSP页面:
写一个提交请求的JSP页面,此JSP页面将会将请求提交给相关的Action类来处理。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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>Insert title here</title>
</head>
<body>
<s:form action="test_1">
<s:textfield name="username" key="username"/>
<s:submit key="login" value="login"/>
</s:form>
</body>
</html>
3.定义处理用户请求的Action类:
写一个与以上JSP关联的Action类来处理该JSP提交的请求。在eclipse中直接放在在src目录下即可
package testAction;
import com.opensymphony.xwork2.ActionSupport;
public class Test_1Action extends ActionSupport{
//定义封装请求参数的成员变量
private String username;
//setter、getter方法
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return this.username;
}
//定义处理请求的execute方法
public String execute()throws Exception{
if(getUsername()!=null){
return SUCCESS;
}else{
return ERROR;
}
}
}
4.编写物理视图资源文件:
为了简单,我们把物理视图资源文件直接放在项目的webContent目录下
error.jsp:
<%@ 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>error page</title>
</head>
<body>
错误页面!username为空!
</body>
</html>
welcome.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!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>welcome page</title>
</head>
<body>
登陆成功!
</body>
</html>
5.配置处理用户请求的Action类并配置Action的处理结果和物理视图资源的映射关系::
使得JSP页面的请求能够准确找到与此JSP页面相关的Action类。
配置Action需要在项目的src目录下添加struts.xml文件,此文件的默认文件也可以在struts2-blank.war解压后目录的WEB-INF\classes下找到,把其修改为如下内容:
<?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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="test" extends="struts-default">
<!--
定义了名为test_1的Action;
处理请求的Action类为testAction.Test_1Action.java
-->
<action name="test_1" class="testAction.Test_1Action">
<!-- 定义逻辑视图与物理视图之间的映射关系 -->
<result name="error">error.jsp</result>
<result name="success">welcome.jsp</result>
</action>
</package>
</struts>
Struts2应用的开发流程的更多相关文章
- Struts2学习笔记--Struts例子及开发流程
参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...
- 一 Struts2 开发流程
SSH与SSM简介SSM:Spring+SpringMVC+MybatisSSH:Struts2+Hibernate+SpringStruts2:是侧重于控制层的框架Hibernate:是一个ORM( ...
- struts2开发流程及配置,域对象对数据存储的3种方式
一.开发流程 1)引入 jar 包,其中必须引入的有(我是用的struts是2.3.32) commons-fileupload-1.3.2.jar |文件上传下载commons-io-2.2 ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- 小谈Scrum敏捷开发流程
一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...
- 我理解的Sitecore开发流程
Sitecore是一个强大的支持快速开发CMS建站的平台,进入sitecore后台可以看到 它主要有3个元素: 1.Templates模板 Data template:类似于面向对象编程中的类或结构体 ...
- C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- git开发流程、常用命令及工具、TortoiseGit使用及常见问题
根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 - 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上br ...
- 软件开发流程 Software development process
软件开发流程(Software development process)即软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法.软件的总体结构设计和模块设计.编程和调试.程序联调和测试以 ...
随机推荐
- 将EXCEL数据表导入到SQL中
工具/原料 SQL Server Management Studio 已建立SQL数据库 方法/步骤 打开SQL Server Management Studio,按图中的路径进入导入数据界面. ...
- oracle表分区
注:新建分区表前要先准备好要用的表空间 一. oracle分区类型: 范围分区(Range分区) 列表分区(List分区) 散列分区(Hash分区) 组合分区(Composite Partitioni ...
- JS 字符串转日期格式 日期格式化字符串
/** * @author 陈维斌 http://www.cnblogs.com/Orange-C/p/4042242.html%20 3 * 如果想将日期字符串格式化,需先将其转换为日期类型Date ...
- JS货币数字转换中文
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- scala简单的文件操作
1.scala写入文件操作 package com.test import java.io.File import java.io.PrintWriter /** * scala文件写入 */ obj ...
- shell if
shell中if做比较 比较两个字符串是否相等的办法是: if [ "$test"x = "test"x ]; then 这里的关键有几点: 1 使用单个等号 ...
- NEON简介【转】
转自:http://blog.csdn.net/fengbingchun/article/details/38020265 版权声明:本文为博主原创文章,未经博主允许不得转载. “ARM Advanc ...
- Valid Anagram
class Solution { public: bool isAnagram(string s, string t) { if(t=="") return s=="&q ...
- oracle 导出表结构和数据,使用plsql
比如说需要把A数据库里面的数据,导入到B数据库 准备工作:在B数据库中创建B数据库同名的的用户名和表空间,注意大小写必须一样. 1,导出表结构.A数据库里点击工具栏里的tools--Export Us ...
- JavaScript的一些基本语句代码如下!!!!
<html><body> <script type="text/javascript">document.write("<h1& ...