根据51视频学习的ssh框架: 视频地址:http://edu.51cto.com/lesson/id-57965.html (前四节免费观看)
1. 安装 myeclipse,SSH框架已经自带了,elipse需要自己安装ssh框架, 下载tomcat7,解压放到一个目录下
2. 创建一个web project, 选择 J2EE 1.6,起一个项目名字 hello world
3. 创建一个java的package ,包名:com.lzl.control, 然后创建一个java 类HelloAction,再创建execute方法(这直接是这个方法,没有继承什么接口,应该是继承接才对),返回值success
public class HelloAction {
public String execute()
{
HttpServletRequest request= ServletActionContext.getRequest();
request.setAttribute("uname", "liangzhonglin");
return "success";
}
}
4. 在主菜单“ My Eclipse"中选择” Project Capbilities",安装 struct2,选择struct2核心包 core,在WebRoot的WEB-INF中的web.xml中,自动增加了过滤器struct2,指定过滤所有的action(action名字在创建包名,可以指定为do或者其它的)
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>HelloStructs</display-name>
<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>*.action</url-pattern>
</filter-mapping>
</web-app>
5. 在WebRoot文件夹下,创建一个Main文件夹,然后创建一个jsp文件 Myjsp, 将body处,改为 "hello, ${uname}"
6. 打开src下的struct.xml,添加 package包,设置name与extends, name是在tomcat的webapps目录下存放的名字, extends是继续 自struts-default(可以打开struct library,选择struct2-core-2.2.1.jar包,找到 struct2-default.xml,打开此文件,找到一个包package,继续此包的name即可;
添加action ,name是在浏览器中显示用的(区分大小写),再加一个class,指定为 com.lzl.control.HelloAction,再增加result子节点,指定值name为 success,跳转到 main/myjsp.jsp
<struts>
<package name="hellojsp" extends="struts-default">
<action name="helloTest" class="com.lzl.control.HelloAction">
<result name="success" > Main/MyJsp.jsp </result>
</action>
</package>
</struts>
7. 选择主菜单project中的properties,选择myeclipse,选择 server deployment,设置tomcat服务器
8. 启动debug调试,在浏览器中输入地址:http://localhost:8080/HelloStructs/helloTest.action访问
说明:tomcat启动时,自动解析 struct2.xml文件,在浏览器中输入访问地址时,自动获取helloTest名字,到struct2.xml文件中,获取action节点处理的class文件,然后执行class的execute方法,将返回值与result的name比较,有合适的进行跳转,否则抛出异常