前段时间学过一下struts1,其实也就是配置web工程成功而已,但是过了一个多月后,当再想继续学习的时候,感觉和从头开始没有什么两样了,为什么?因为我没有总结,没有形成自己的一套体系。胡-哥说过,技术博客为什么要发表? 不发表就没有留存, 没有留存就没有记忆,没有记忆就没有历史,没有历史就没有存在,没有存在就没有意义!所以我决定了在以后的学习中都要把学到的东西记录下来,让这些见证自己的成长。
话说多了,前两天接触了struts2, struts2给我第一的感觉就是比struts操作简单,省去了很多步骤,更灵活(其实struts1我只是学过几天而已,感觉特别繁琐)。
今天就记录第一个怎么配置第一个struts工程。
1、 下载struts类库http://www.apache.org/ 我用的是2.1.6版本,myeclipse8.6
2、 创建web工程,将一些必要的类库拷贝到WebRoot目录的lib下。下载到的类库很多,其中必需的有7个:
(1)commons-fileupload-1.2.1.jar
(2)commons-io-1.3.2.jar
(3)commons-logging-1.0.4.jar
(4)freemarker-2.3.13.jar
(5)ognl-2.6.11.jar
(6)struts2-core-2.1.6.jar
(7)xwork-2.1.2.jar
3、编写配置文件struts.xml文件,此文件要放在src目录下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.champion.action.LoginAction">
<result name="sucess">/index.jsp</result>
</action>
</package>
</struts>
说明:struts2和strus1在配置文件就有很大的不同,它的配置信息比struts1简单多了,它一<struts>开头,里 面有<bean>,<struts>,<include>,<package>四个子标签,现在我只到到过<package>这个标签,所以就分析一下 这个标签的有什么用,<package>的name属性可以随便取,extents表示继承stuts-default.xml这个配置文件(这或许就是struts2配置信息比较简单吧,个人的猜想而已).<package>标签下也有很多个子标签,经常用到的是<action>,这个标签看它的名字就可以知道是什么意思了,在这里,我定义了一个name="login"的动作,它对应的类为
class="com.champion.action.LoginAction",<action>标签下有个<result>标签,它的作用就是在动作类处理后需要处理的结果。关于这个配置的文件就说这么多,以后再慢慢深入…
4、有了这配置文件还是不行的,必须得让tomcat知道有个文件,它才会把struts2的类库加载到内存来,所以还得在web.xml里面配置。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<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>
说明:这个文件的配置和struts1也有明显的不同,struts1采用的是动作控制的servlet来配置,而这个是通过过滤器来控制的,只要配置的有<filter>和<filter-mapping>这两个标签,其中的<filter-class>是固定的,<filter-name>要一致,否则将无法找到对应的过滤器,<url-pattern>/*<url-pattern>表示所以的请求都交给这个过滤器过滤。
5、编写LoginAction.java代码
package com.champion.action;
public class LoginAction {
private String username;
private String userpwd;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpwd() {
return userpwd;
}
public void setUserpwd(String userpwd) {
this.userpwd = userpwd;
}
public String execute() throws Exception {
return "sucess";
}
}
说明:这个动作类里面有两个属性username和userpwd以及他们的set和get方法,这两个属性名称要和页面的输入框name属性值相同,还有一个方法execute(),这个方法是struts2内置的,它返回一个字符串类型,当在页面请求login.acion时,它就会自动将页面的值赋给这两个属性。
6、编写login.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
<head>
<title>用户登录</title>
</head>
<body>
<form action="login.action" method="post">
用户名:
<input type="text" name="username" />
<br>
密 码:
<input type="password" name="userpwd" />
<br>
<input type="submit" value="提交" />
<input type="reset" value="重置" />
</form>
</body>
</html>
说明:可以看到两个输入框的name属性值和LoginAction类中的属性值一致,表单的action="login.action",当
表单提交时,后台就会调用LoginAction这个类。
7、编写index.jsp页面,表示登录成功后需要显示的页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
<head>
<title>个人信息中心</title>
</head>
<body>
用户名:${requestScope.username }
密 码:${requestScope.userpwd }
</body>
</html>
说明:这个页面用来EL表达式来显示用户的信息,其他的不多说了。
8、启动工程,看结果,有图有真相。
在login.jsp页面输入如下:
提交后在index.jsp页面输出如下:
9、整个流程是怎么样的
说明:在index页面中的代码,用户名:${requestScope.username }
密 码:${requestScope.userpwd }
struts会自动调用LoginAction中的属性的get方法,最终显示在页面上。
10、小结一下
struts2刚接触几天,只是明白了这个整个流程,虽然自己很明白这个流程,但是很难用言语来准确的描述,就像上边的流程图一样,画了半个小时,最终的结果也不清不楚的,自己看这都晕,以后还是得多补充一下辅助工具使用方面的知识才行了,要做程序员就必须得用工具来表达自己的思想,要不技术再厉害,也可能无处施展(声明一下,我的技术不厉害)。
- 大小: 2 KB
- 大小: 956 Bytes
- 大小: 11.8 KB
分享到:
相关推荐
struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换,用到的类StrutsTypeConverter ...
struts2简介与入门,简要介绍了struts2的起源和初步的使用方法,适合入门学习
struts2学习笔记和源码,struts2原理。文件上传、i18n等等
改struts2入门案例是我本人自己写的入门小案例,可以使用。适合刚接触或者准备学习struts2的同事拿来看看
1.Max-Struts2教程.rar(word文档) 2.struts2教程.chm 3.Struts2学习入门.pdf 4.webwork2开发指南.pdf
帮助学习struts2的朋友,一些入门的例子。
Struts2是一套非常优秀的Java WEB应用框架,实现优雅、功能强大、使用简洁。目前已有大量的企业项目采用Struts2来...学习完本视频,你会真正理解Struts2相对于Struts1的优雅和简洁,并使你具备开发Struts2项目的能力。
Struts2学习文档,Struts入门学习资料,包括(struts-xml,action,上传下载,监听器,拦截器,验证,类型转换,国际化等等)
struts2介绍之使用连接标签 struts2入门 struts2进阶学习一 struts2进阶学习二 struts2进阶学习三 struts2进阶学习四 struts2进阶学习一 struts2进阶学习一 struts2进阶学习一 struts2进阶学习一
Struts学习傻瓜式入门篇,很有用的Struts学习傻瓜式入门篇
这个示例是Struts2的入门例子,非常适合Struts2的初学者,通过这个例子的学习,初学者可以很快掌握Struts2的运行流程。
NULL 博文链接:https://pwpw1218.iteye.com/blog/2106955
自己在学习struts2的时候用的一些资料整理出来做成了pdf格式的,希望对大家有用。
Struts2轻松入门 Struts2总结 Struts2和Struts1.x对比学习
入门学习,什么是struts2,用于哪方面的开发,Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并,全新的Struts 2框架。
struts2学习资料,入门教程,适合初学者
struts2入门学习配置 内含项目 PPT解说 很好的学习材料
struts2 总结入门学习文档 教你如何白手起家搭建Struts2开发环境、编写第一个struts2应用helloworld、属性介绍、接口、拦截器介绍、struts2标签等。93页
Struts2的功能方法,看了就基本懂struts是什么回事了
struts2 学习ppt 入门必看 从入门到精通