花了几天的时间学习了struts2.0,发现自己越来越不适合学习了(HOHO,从小不爱学习的借口)。在出现和解决了一个个错误之后,对 struts2也有了一些认识,就在这里把自己的一些学习心得记录下来,和像我一样的初学者分享,还有就是能得到高手的指正。
用过struts的人都知道,struts在为我们开发带来很多便捷之外,实际上也存在着自身的些许缺欠:
1.随着代码的增多,容易引起“类爆炸”;
2.单元测试困难。
那么在这个基础上就提出了struts2.0,它能很好的解决上述的问题,那么如何学习struts2.0,让我们从一个例子开始(页面输入->Action处理->再输出到另外页面)
开发环境:IDE:Eclipse3.4+Myeclipse7.0,Servlet Container:Tomcat6.0。
先下载struts2.0的包,下载地址:http://struts.apache.org/download.cgi,下载Full Distribution
解压缩后首先会看到几个文件夹:
Apps下是自带的例子;docs下为帮助文档;lib是jar包;src为struts2.0的源代码
OK,让我们开始动手吧!
一、先建立一个web project,取名为testStruts01(名字可以自己任意定义),然后导包,如下:
在这里有人会问这几个包要自己到lib下一个个去找吗?或者在其他的文献中看到的导入的包不一样,应该怎么找这几个包?其实完全不用那么麻烦,只要将apps下的*.war项目部署到Tomcat下的webapps下,然后重启Tomcat会看到war文件自动解压缩,将这个项目里的lib文件夹下的jar包复制出来即可。
二、部署web.xml,写入如下代码:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern></filter-mapping>
org.apache.struts2.dispatcher.FilterDispatcher
是Struts2.0的主要的Filter,负责四个方面的功能:
(1)执行Actions
(2)清除ActionContext
(3)维护静态内容
(4)清除request生命周期内的XWork的interceptors
另注:该过滤器应该过滤所有的请求URL。一般被设置为/*.
三、在WebRoot下新建login.jsp,主要代码如下:
<form method="post" action="login.action">
name: <input type="text" name="username"><br>
<input type="submit" value="提交">
</form>
在struts中请求是以*.do结尾的,在struts2.0里改为*.action,如果今后我们用到struts2的标签就要这样写<s: form action="login" method="post">不要在加上.action。
四、在src下新建cn.test.action包
五、在包下新建一个JAVA类,取名为LoginAction.java,继承自 com.opensymphony.xwork2.ActionSupport
主要代码如下:
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return SUCCESS;
}
六、在src下新建struts.xml,这里一定要注意的就是struts.xml的位置,一定要在src下,而不能是其它路径,否则在提交请求时会报一个There is no Action mapped for namespace / and action name login的404错误,主要代码如下:
<?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="cn.test.action.LoginAction">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
struts.xml中<result>/result.jsp</result> 也可以写成<result name="success">/result.jsp</result> 它与execute()方法中的return SUCCESS;是对应的。
七、新建result.jsp,主要代码如下:
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>My JSP 'result.jsp' starting page</title>
</head>
<body>
name:<s:property value="username" />
</body>
</html>
这里一定要注意的是,property下的属性为value,而不是name,否则在取值的时候会为null。
八、发布项目到Tomcat下,然后启动Tomcat,运行结果如下:
点击提交之后的结果为:
这个就是我们用struts2.0的第一个例子,后面还会把我学习的心得写给大家看的。
相关推荐
### Struts Validation框架浅尝 #### Struts Validation框架概述 Struts Validation框架是Apache Struts框架的一个重要组成部分,主要用于在Web应用中实现表单验证功能。通过使用该框架,开发者可以方便地对用户...
浅尝多媒体作品.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
Java 窗体对象浅尝,主要探讨的是如何在Java编程中使用Swing库来创建和管理用户界面,特别是窗体对象。Swing是Java的一个重要组件,它提供了丰富的图形用户界面(GUI)构建工具,比早期的AWT(Abstract Window ...
做一个简单的网站是绝对可以的!祝愿大家能够尽快进入.net 2.0的世界。也希望本教程能够帮助你更好的学习。教程出处:网易学院。学员有问题可以点这里直接咨询。作者将不定时在线回复。谢谢大家!
《浅尝Spring注解开发_AOP原理及完整过程分析(源码)》 Spring框架的注解开发在现代Java应用中扮演着至关重要的角色,尤其是其面向切面编程(AOP)特性,使得代码更加模块化,提高了可维护性和可重用性。本文将...
【第三方物流资源整合研究浅尝】 第三方物流(3PL)是指企业将物流业务外包给专业的物流公司,以便自身专注于核心业务的经营。随着全球经济一体化,特别是中国加入世界贸易组织(WTO),国内物流市场面临着国内外...
在“牛顿第一定律”教学时,通过模拟伽利略的理想斜面实验,学生在感性认识基础上进行理性推理,建立起正确的物理观念。而在“平抛运动”教学中,计算机技术可以慢放并分解运动,使学生清晰看到水平和垂直两个分运动...
知识图谱是一种结构化的语义知识库,它以图形的形式组织信息,将实体之间的各种复杂关系表达出来。它在信息检索、自然语言处理、推荐系统等多个领域有着广泛的应用。ICLR(International Conference on Learning ...
【多媒体教学在初中物理教育中的应用】 随着信息技术的飞速发展,多媒体计算机已经逐渐成为现代教育的重要工具,尤其是在初中物理教学中,它的引入为教学带来了前所未有的变革。多媒体教学不仅提升了课堂信息量,...
翻转课堂是一种新型的教学模式,它颠覆了传统课堂中的教学流程,即教师不再单纯地在课堂上讲授新知识,而是让学生通过预习材料(如视频讲座、阅读资料等)在课前自主学习新内容。这种方式使得课堂时间可以更多地用于...
4.BeanPostProcessor 接口 BeanPostProcessor 接口提供了一种更加灵活的方式来介入 Bean 的初始化和销毁过程。它包含两个方法: - `postProcessBeforeInitialization(Object bean, String beanName)`:在 ...
4. **阅读与学习的方法**:弗朗西斯·培根指出,不同的书籍需要不同的阅读方式,有的需要浅尝,有的需要深入理解。这教导我们应根据书籍内容调整阅读策略。 5. **爱的定义**:乔伊斯·布拉泽斯提出,爱的最好证明是...
**MySpace APP开发浅尝** MySpace是早期支持OpenSocial的社交平台之一。在MySpace上开发APP需要遵循OpenSocial标准,并且可以利用其特定的功能和用户群。 #### 开放技术和独立平台 随着开放平台的普及,一系列...
通过VSTS,你可以建立一组计算机来生成模拟的负载测试 因为工作需要,近期体验了VSTS2010Beta1中提供的负载测试功能。将会在后面的几篇博文中分享一些使用的心得。其实VisualStudioTeamSystemTest版本从version2005...
√(vs200501) 2. 对工具栏作说明 √(vs200502) 3. 制作第一个页面 欢迎您进入.Net启动运行√(vs200503) 4. 小结考试√(ceshi01) 前四级没有声音 讲解C#基本语法 5. 变量√(vs200504)...
√(vs200501) 2. 对工具栏作说明 √(vs200502) 3. 制作第一个页面 欢迎您进入.Net启动运行√(vs200503) 4. 小结考试√(ceshi01) 前四级没有声音 讲解C#基本语法 5. 变量√(vs200504)...
本资源类似于 Postman 的 IDEA 插件Restful Fast Request,在IDEA安装该插件后,找到插件安装目录,【C:\\Users\\Administrator\\AppData\\Roaming\\JetBrains\\IntelliJIdea2021.3\\plugins\\Restful Fast Request ...
GPT-4的横空出世,让许多人浅尝到了大型语言模型的强大能力。 然而,OpenAI不open。业界许多人纷纷开始做GPT的克隆,而且许多ChatGPT平替的模型都是基于已经开源的模型上构建,尤其是Meta开源的LLMa模型。 比如,...
随着XHTML的逐渐式微,Chrome,Safari,FireFox,Opera等现代浏览器正在积极完善HTML5实现,IE9也加入到标准的行列并将在今年上半年发布正式版,HTML5时代来临了。...随着浏览器对canvas的普遍支持,利用canvas实现的...