花了几天的时间学习了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框架浅尝
浅尝多媒体作品.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
Java 窗体对象浅尝Java 窗体对象浅尝
做一个简单的网站是绝对可以的!祝愿大家能够尽快进入.net 2.0的世界。也希望本教程能够帮助你更好的学习。教程出处:网易学院。学员有问题可以点这里直接咨询。作者将不定时在线回复。谢谢大家!
多媒体教学初中物理的浅尝.doc
CAI在物理教学中的浅尝.doc
第三方物流资源整合研究浅尝.doc
浅尝Spring注解开发_Bean生命周期及执行过程.doc
基于翻转课堂的DSP原理及应用教学改革浅尝.docx
浅尝Spring注解开发_AOP原理及完整过程分析(源码).doc
ICLR 2020 正在进行,但总结笔记却相继出炉。我们曾对 ICLR 2020 上的趋势进行介绍,本文考虑的主题为知识图谱。
通过VSTS,你可以建立一组计算机来生成模拟的负载测试 因为工作需要,近期体验了VSTS2010Beta1中提供的负载测试功能。将会在后面的几篇博文中分享一些使用的心得。其实VisualStudioTeamSystemTest版本从version2005...
浙江鸭2018届高考生物专题训练25浅尝现代生物技术
√(vs200501) 2. 对工具栏作说明 √(vs200502) 3. 制作第一个页面 欢迎您进入.Net启动运行√(vs200503) 4. 小结考试√(ceshi01) 前四级没有声音 讲解C#基本语法 5. 变量√(vs200504)...
1. 安装 (1) Qt 安装 http://download.qt.io/archive/qt/ (2) Python 安装 ... (3) Qt for Python 支持 i.... pip install pyside2 // 下载, 这里安装太慢, 使用下面这句 ...
√(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实现的...