终于把电脑弄出声音了,不用再让我天天面对一个哑巴了,高兴!从今天开始,学习Struts2,看视频,敲代码,做笔记,写文章!
Struts2入门及基本配置
Struts2来源与webwork以及Struts
开发环境:
IDE:MyEclipse8.0
Container:Tomcat6.0
在Tomcat目录下,conf下的server.xml文件中,最后添加
<Context path="\Struts2" docBase="C:\DocumentsSettings\Administrator\Workspaces\MyEclipse 8.x\Struts2\WebRoot" reloadable="true" />
目的是:修改项目的class文件或者配置文件,Tomcat自动重启,比较方便,但是当项目部署好之后,reloadable="false"
开发Struts2程序需要的jar包:
Commons-logging 日志包
Freemarker
Ognl
Struts2-core-2.0.11
Xwork
新建一个工程:
我要做的是登录
在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>
使得项目中所有的请求都得到Struts2的过滤
Struts2中配置请求的文件是struts.xml,要求这个文件一定要保存在项目的class目录下,所以,将它新建到src目录下,编译后就在class下了。
在struts.xml中写当前应用的Struts的所有应用信息
在src中新建一个action包,新建action类,不用继承任何类(和Struts1不一样)
private String username;
private String password;
添加get、set方法
public String execute() throws Exception{
return "success";
}
当客户端发送来请求,Struts2会自动到action中的set方法赋值,所以定义的属性并没有和Jsp页面中的属性值有直接联系,而是通过set方法赋值(和Struts1不一样,Struts1是通过Form类,封装对象)
在页面中显示数据的时候,用EL表达式比较简单
username:${requestScope.username }
现在在struts.xml中添加信息
<package name="struts2" extends="struts-default">
<!--这的extends是指struts2这个包继承后边这个包--!>
<action name="login" class="tbk.struts.action.LoginAction">
<!--这的name是和Jsp页面中Form表单的Action值相同,去掉.action
这个class指处理Action的类
--!>
<result name="success">/result.jsp</result>
<!--result指结果需要跳转到的页面,其实不用写name="success",系统默认的就是--!>
</action>
</package>
好了,项目可以运行了。现在总结一下Struts2的执行流程
用户提交表单,发出请求,到struts.xml中找到相匹配的Action,再到相应了Action类中执行execute()方法,返回结果,到strutsx.xml中,匹配相应的结果,转到相应的页面(转发),显示。
第一天,没有太多的理论,后边会有的,最重要的是把这个功能实现。