所以在学习struts2的时候我们不能简单的认为struts2是struts1的升级版本,我们智能把它当作一个全新的框架来学习,当然假如你以前学习过webwork那么相信你学习struts2是很容易上手的。
下面就让我们开始struts2的学习吧···(一个简单的登录)
步骤一:分包(搭好框架)
步骤二:导入struts2开发所需要的jar包
步骤三:在src下新建一个struts.xml文件(开头的dtd可以在 导入的struts2-core-2.0.14.jar包中的struts-2.0.dtd中找到)
<?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="mypackage" extends="struts-default"> <action name="login" class="cn.zhuojingxinxi.web.LoginAction"> <result name="sucess">/sucess.jsp</result> </action> </package> </struts>
步骤四:在 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>
步骤五:编写实体类(代码如下)
package cn.zhuojingxinxi.entity; public class Person { private String pname; private int page; public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } }
步骤六:编写action(由于struts2不同于struts1它没有action与form,所有的东西都写在一个action中,为了代码简洁所以步骤五中编写了一个实体类,在这个action中struts2默认是将实体对象new出来的,而在struts1中必须手动new)
package cn.zhuojingxinxi.web; import cn.zhuojingxinxi.entity.Person; public class LoginAction { private Person person=null; public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public String execute(){ System.out.println("进来了····"); return "sucess"; } }
步骤七:编写登录页面(代码如下)
<body> <form action="login.action" method="post"> 姓名:<s:textfield name="person.pname"></s:textfield><br/> 年龄:<s:textfield name="person.page"></s:textfield> <s:submit value="提交"></s:submit> </form> </body>
编写成功页面(代码如下)
<body> <center> <h1>登录成功</h1> ${person.pname } ${person.page } </center> </body>
注:需要注意的是
1.由于使用的是实体对象,登录页面相应的文本框的name必须是对象名.属性。
2.在struts.xml中package节点必须加上extends="struts-default"。
源码下载请点这里: