struts2第一次配置并且运行

来源:互联网 发布:钢筋笼计算软件 编辑:程序博客网 时间:2024/06/16 03:06

学习struts2框架的三种境界

框架使用

理解框架

制作部分框架
核心是:训练表达能力
框架就是一个模版framework
框架的好处是提高开发效率
app 一些简单的项目案例
docs存放学习文档
lib 存放所需jar包
src 存放的是struts2的源码


Servlet做的事情:
1.处理用户提交的数据
2.调用业务方法
3.处理业务结果
4.控制视图显示


MVC框架做的事情
1.将用户的请求映射到一个java类
2.获取用户提交的数据
3.将数据封装到前台
4.控制视图跳转
//所以,我们只需要调用业务方法


搭建struts2项目步骤
1.新建web项目stuts222
2.导入所需jar包,从struts框架的压缩包的app文件夹下,解压一个案例,在WEB-INF的lib文件夹下拷贝所需jar包,已下几个就足够了,
导入多个可能会出错,至少我因为多导JAR包被坑了好几个小时
/stuts222/WebContent/WEB-INF/lib/asm-3.3.jar
/stuts222/WebContent/WEB-INF/lib/asm-commons-3.3.jar
/stuts222/WebContent/WEB-INF/lib/asm-tree-3.3.jar
/stuts222/WebContent/WEB-INF/lib/commons-fileupload-1.3.1.jar
/stuts222/WebContent/WEB-INF/lib/commons-io-2.2.jar
/stuts222/WebContent/WEB-INF/lib/commons-lang3-3.1.jar
/stuts222/WebContent/WEB-INF/lib/freemarker-2.3.19.jar
/stuts222/WebContent/WEB-INF/lib/javassist-3.11.0.GA.jar
/stuts222/WebContent/WEB-INF/lib/ognl-3.0.6.jar
/stuts222/WebContent/WEB-INF/lib/struts2-core-2.3.16.3.jar
/stuts222/WebContent/WEB-INF/lib/xwork-core-2.3.16.3.jar

3.配置struts2的核心控制器web.xml文件,它是一个过滤器,从WEB-INF中能找到

web.xml源文件如下,放在WEB-INF包下,跟lib并列

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


<display-name>Struts Showcase Application</display-name>


<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>


<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>






<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>


</web-app>  


4.在src文件下添加struts2的配置文件,struts.xml,名称不能改,这是规则。可以在示例文件WEB-INF的src文件夹下找到struts.xml,拷贝一份。
注意<filter-class>可以从core包中尾部为filter的包中找到,找那个最长的,复制精准名字,并去掉.class!!!!
否则报java.lang.ClassNotFoundException:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter





//注:到这里,框架基本搭建完成
5.编写Action类--HelloAction
package cn.sxt.action;
public class HelloAction {
public String execute(){
System.out.println("hello struts2");
return "success";
}
}

//注:在servlet中,默认执行service方法。在struts2中,默认执行execute方法
在servlet中,service方法参数是HttpServletRequest和HttpServletResponse,无返回值
在struts2中,方法都是public的,返回值都是String类型的,方法都是没有参数的

6.配置action类,在struts.xml文件中,配置HelloAction

struts2是基于包来管理的

struts.xml源代码


<?xml version="1.0" encoding="UTF-8" ?>


<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     "http://struts.apache.org/dtds/struts-2.3.dtd">


<struts>
<package name="hello" extends="struts-default"  namespace="/" >
<action name="hello" class="cn.cxt.action.HelloAction">
<result name="success">
/index.jsp</result>
</action>
</package>

</struts>


//注:这里能通过Window-Preference--XML Catalog,设置快捷联想方法,KeyType设为URL
location从网上下载一个struts.dtd文件
key设为 http://struts.apache.org/dtds/struts-2.3.dtd
extends必须写,或者间接继承struts-default;
action是请求名称,不能写“/”,class是包名+类名
result是结果集,name和对应的action类中的返回值匹配,Action类默认返回值是success
注意,<package name="",extend="" namespace="/">namespace="/",没有这句话直接报错!!!

会报"There is no Action mapped for namespace / and action name"错误

去哪个页面要加上“/”


7.访问http://localhost:8080/stuts222/hello
 页面显示了index.jsp 的话struts ecstablish success! 
原创粉丝点击