|
前天晚上接触了框架,花了一天的时间实现了struts2.0的第一个helloworld
首先总结一下struts2.0的工作机制
struts2.0通过拦截去来拦截所有浏览器提交的请求!这个需要在web.xml里面进行一些简单的配置
在新建了一个web工程后,我们需要导入struts2.0的五个基本包,也可以直接将这五个包复制到lib文件夹下面!
然后开始配置web.xml,首先是创建一个过滤器,<filter></filter>这个标签下面有两个子标签,分别是<filter-name>和<filter-
class>顾名思义,第一个是过滤器的名字,第二个是实现这个功能的类!
创建完了过滤器后腰要创建一个过滤器的映射来拦截这些请求。<filter-mapping>这个标签同样也是有两个子标签,<filter-name>
和<url-pattern>前者代表过滤器的名字,后者是映射,一般是将<url-pattern>的内容设置为/*,/*的意思是拦截一切请求
到这里就配置完了web.xml了
下面就那个例子来分解一下
我们新建一个web工程,我们这个工程的目的实现一个简单的用户登录。比较简单
我们通过Login.Action这个类来创建action
public class LoginAction {
String name = "";
String pwd = "";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String execute(){
if(this.name.equals("chaichai")&&this.pwd.equals("haha")){
return "go";
}else{
return "back";
}
}
}
这是这个类的代码。execute这个方法就是这个类的核心方法,方法的名字一般都是这个,不能变,因为习惯问题!也可以改,不过
还需要配置一些文件!
接下来在webroot文件夹下新建三个jsp页面,index.jsp Login.jsp Loginout.jsp 第一个页面时登录页面,第二个是成功登录,第
三个是登录失败后转向的页面
下面就要配置一个新的xml文件,struts.xml这个文件的名字一定要是struts要不然就会出错!
下面是文件内的内容:
<?xml version="1.0" encoding="UTF-8"?>
这是xml的版本号
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
这个是dtd文件 只有引入dtd文件后这个xml文档才是一个有效的文档!
<struts>
<include file="struts-default.xml" />
这句是引入struts-default.xml,一般struts.xml会默认的继承两个,一个就是struts-default,还有一个是struts-plugins 好像
是这个,知道就行啦!
<package name="hello" extends="struts-default">
包的名字,我现在也不太明白,我运行的时候我改了成了两个不同的名字,都可以正常的运行!
<action name="Login" class="com.me.LoginAction">
这个是action的关键,name这个action的名字,是唯一标记这个action的,如果在提交表单的时候需要使用哪个action来处理就需要
用到这个名字了,class是实现这个action的类,
<result name="go" >Loginin.jsp</result>
<result name="back" >Loginout.jsp</result>
result标签就简单了,我们一般在action类里面的execute方法里面,都是返回一个字符串,result标签通过返回的字符串的不同来
实现页面的重定向!
</action>
</package>
</struts>
现在这个文件的配置就完毕了,现在就可以运行这个简单的登录了! |
|