`
xiaoyao1052
  • 浏览: 2052 次
  • 性别: 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  
顶就一个字,我只说一次。。。。。。

相关推荐

Global site tag (gtag.js) - Google Analytics