`
xiaoyao1052
  • 浏览: 2140 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

浅尝Struts2.0(一)

阅读更多

   花了几天的时间学习了struts2.0,发现自己越来越不适合学习了(HOHO,从小不爱学习的借口)。在出现和解决了一个个错误之后,对 struts2也有了一些认识,就在这里把自己的一些学习心得记录下来,和像我一样的初学者分享,还有就是能得到高手的指正。

用过struts的人都知道,struts在为我们开发带来很多便捷之外,实际上也存在着自身的些许缺欠:

1.随着代码的增多,容易引起“类爆炸”;

2.单元测试困难。

那么在这个基础上就提出了struts2.0,它能很好的解决上述的问题,那么如何学习struts2.0,让我们从一个例子开始(页面输入->Action处理->再输出到另外页面

开发环境:IDEEclipse3.4+Myeclipse7.0Servlet ContainerTomcat6.0

先下载struts2.0的包,下载地址:http://struts.apache.org/download.cgi,下载Full Distribution

解压缩后首先会看到几个文件夹:

Apps下是自带的例子;docs下为帮助文档;libjar包;srcstruts2.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生命周期内的XWorkinterceptors

另注:该过滤器应该过滤所有的请求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 login404错误,主要代码如下:

<?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的第一个例子,后面还会把我学习的心得写给大家看的。

<!--EndFragment-->
  • 大小: 15.5 KB
  • 大小: 3.7 KB
  • 大小: 1.6 KB
0
0
分享到:
评论
1 楼 snipercc 2009-10-17  
顶就一个字,我只说一次。。。。。。

相关推荐

    Struts Validation框架浅尝

    ### Struts Validation框架浅尝 #### Struts Validation框架概述 Struts Validation框架是Apache Struts框架的一个重要组成部分,主要用于在Web应用中实现表单验证功能。通过使用该框架,开发者可以方便地对用户...

    浅尝多媒体作品.ppt

    浅尝多媒体作品.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~

    Java 窗体对象浅尝

    Java 窗体对象浅尝,主要探讨的是如何在Java编程中使用Swing库来创建和管理用户界面,特别是窗体对象。Swing是Java的一个重要组件,它提供了丰富的图形用户界面(GUI)构建工具,比早期的AWT(Abstract Window ...

    VS2005入门视频教程-093.浅尝存储过程.rar

    做一个简单的网站是绝对可以的!祝愿大家能够尽快进入.net 2.0的世界。也希望本教程能够帮助你更好的学习。教程出处:网易学院。学员有问题可以点这里直接咨询。作者将不定时在线回复。谢谢大家!

    浅尝Spring注解开发_AOP原理及完整过程分析(源码).doc

    《浅尝Spring注解开发_AOP原理及完整过程分析(源码)》 Spring框架的注解开发在现代Java应用中扮演着至关重要的角色,尤其是其面向切面编程(AOP)特性,使得代码更加模块化,提高了可维护性和可重用性。本文将...

    第三方物流资源整合研究浅尝.doc

    【第三方物流资源整合研究浅尝】 第三方物流(3PL)是指企业将物流业务外包给专业的物流公司,以便自身专注于核心业务的经营。随着全球经济一体化,特别是中国加入世界贸易组织(WTO),国内物流市场面临着国内外...

    CAI在物理教学中的浅尝.doc

    在“牛顿第一定律”教学时,通过模拟伽利略的理想斜面实验,学生在感性认识基础上进行理性推理,建立起正确的物理观念。而在“平抛运动”教学中,计算机技术可以慢放并分解运动,使学生清晰看到水平和垂直两个分运动...

    论文浅尝 # ICLR 2020 - 一文全览知识图谱研究

    知识图谱是一种结构化的语义知识库,它以图形的形式组织信息,将实体之间的各种复杂关系表达出来。它在信息检索、自然语言处理、推荐系统等多个领域有着广泛的应用。ICLR(International Conference on Learning ...

    多媒体教学初中物理的浅尝.doc

    【多媒体教学在初中物理教育中的应用】 随着信息技术的飞速发展,多媒体计算机已经逐渐成为现代教育的重要工具,尤其是在初中物理教学中,它的引入为教学带来了前所未有的变革。多媒体教学不仅提升了课堂信息量,...

    基于翻转课堂的DSP原理及应用教学改革浅尝.docx

    翻转课堂是一种新型的教学模式,它颠覆了传统课堂中的教学流程,即教师不再单纯地在课堂上讲授新知识,而是让学生通过预习材料(如视频讲座、阅读资料等)在课前自主学习新内容。这种方式使得课堂时间可以更多地用于...

    浅尝Spring注解开发_Bean生命周期及执行过程.doc

       4.BeanPostProcessor 接口 BeanPostProcessor 接口提供了一种更加灵活的方式来介入 Bean 的初始化和销毁过程。它包含两个方法: - `postProcessBeforeInitialization(Object bean, String beanName)`:在 ...

    每日英语名言-懒惰就像一把锁,锁住了知识的仓库,使你的智力变得.doc

    4. **阅读与学习的方法**:弗朗西斯·培根指出,不同的书籍需要不同的阅读方式,有的需要浅尝,有的需要深入理解。这教导我们应根据书籍内容调整阅读策略。 5. **爱的定义**:乔伊斯·布拉泽斯提出,爱的最好证明是...

    php&morePDF文档,第八期

    **MySpace APP开发浅尝** MySpace是早期支持OpenSocial的社交平台之一。在MySpace上开发APP需要遵循OpenSocial标准,并且可以利用其特定的功能和用户群。 #### 开放技术和独立平台 随着开放平台的普及,一系列...

    VSTS2010LoadTest性能测试浅尝

    通过VSTS,你可以建立一组计算机来生成模拟的负载测试 因为工作需要,近期体验了VSTS2010Beta1中提供的负载测试功能。将会在后面的几篇博文中分享一些使用的心得。其实VisualStudioTeamSystemTest版本从version2005...

    GridView使用技巧一

    √(vs200501) 2. 对工具栏作说明 √(vs200502) 3. 制作第一个页面 欢迎您进入.Net启动运行√(vs200503) 4. 小结考试√(ceshi01) 前四级没有声音 讲解C#基本语法 5. 变量√(vs200504)...

    制作第一个页面 欢迎您进入.Net启动运行

    √(vs200501) 2. 对工具栏作说明 √(vs200502) 3. 制作第一个页面 欢迎您进入.Net启动运行√(vs200503) 4. 小结考试√(ceshi01) 前四级没有声音 讲解C#基本语法 5. 变量√(vs200504)...

    Restful Fast Request插件逆向

    本资源类似于 Postman 的 IDEA 插件Restful Fast Request,在IDEA安装该插件后,找到插件安装目录,【C:\\Users\\Administrator\\AppData\\Roaming\\JetBrains\\IntelliJIdea2021.3\\plugins\\Restful Fast Request ...

    ChatGPT自己会选模型了:微软亚研院+浙大爆火新论文,HuggingGPT项目已开源

    GPT-4的横空出世,让许多人浅尝到了大型语言模型的强大能力。 然而,OpenAI不open。业界许多人纷纷开始做GPT的克隆,而且许多ChatGPT平替的模型都是基于已经开源的模型上构建,尤其是Meta开源的LLMa模型。 比如,...

    以圆桌骑士为例浅尝HTML5游戏开发

    随着XHTML的逐渐式微,Chrome,Safari,FireFox,Opera等现代浏览器正在积极完善HTML5实现,IE9也加入到标准的行列并将在今年上半年发布正式版,HTML5时代来临了。...随着浏览器对canvas的普遍支持,利用canvas实现的...

Global site tag (gtag.js) - Google Analytics