关闭

如何使用struts2搭建web项目

1946人阅读 评论(0) 收藏 举报
分类:

如何使用struts2搭建web项目


具体有以下步骤:

    step1,创建一个JavaWeb Project

    step2,添加struts2基本类库

    step3,在web.xml中配置struts2的前端控制器

    step4,控制器配置文件src/struts.xml


step1创建一个JavaWeb Project  

     就不详细说了。。。


step2  添加struts2基本类库

   我用到的Struts版本为2.1.8,建议使用此版本

将下面的jar包复制到/WEB-INF/lib下



step3  在web.xml中配置struts2的前端控制器

	<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>/*</url-pattern>
    </filter-mapping>

   1)Struts2的核心控制器FilterDispatcher被设计成了过滤器,通过<filter></filter>标签引入。

   2)<url-pattern>/*</url-pattern>说明所有客户端请求都经由FilterDispatcher处理,并把过滤后的请求交给Struts2进行处理


step4  控制器配置文件src/struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
	<package name="first" namespace="/" extends="struts-default">
		<action name="hello" class="action.HelloAction">
			<!-- 将jsp页面放到/WEB-INF文件夹下可以避免用户直接访问 -->
			<result name="success">/WEB-INF/jsp/success.jsp</result>
			<result name="error">/WEB-INF/jsp/error.jsp</result>
		</action>
	</package>
</struts>
    Struts2框架的核心配置文件就是struts.xml,该文件主要负责Struts2应用中各Action的具体实现逻辑。struts.xml会根据不同请求找到具体的Action,然后根据Action返回的逻辑视图名找到具体的物理视图。

  该文件发布的时候必须放置在WEB-INF/classes路径下,当程序运行的时候会自动在该目录下搜索struts.xml。

  在action标签中定义了name和class。name属性对应的是用户URL请求中的action名,比如在本应用中,用户请求为http://localhost:8080/struts01/hello.action,那么name属性就应该为hello。class属性是处理请求的实现类(注意:要包含完整路径),本应用的实现类是action.HelloAction。

  result标签定义逻辑视图和物理视图之间的映射,在我们的Action中,如果返回的字符串是"success”则由对应的success.jsp页面进行处理;如果返回的字符串是"error”则由error.jsp页面进行处理。


step5  编写action与jsp

action.HelloAction.java代码:

package action;

public class HelloAction {
	
	public String execute(){
		System.out.println("execute()...");
		return "error";
	}
}
 编写Action作用

     Struts2直接使用Action来封装HTTP请求参数,因此Action类应该包含与请求相对应的属性,并为该属性提供对应的setter和getter方法。

     为Action类里增加一个execute方法,因为Struts2框架默认会执行这个方法。这个方法本身并不做业务逻辑处理,而是调用其他业务逻辑组件完成这部分工作。

     Action类返回一个标准的字符串,该字符串是一个逻辑视图名,该视图名对应实际的物理视图。


 Action有一下特点:

    Struts2框架中Action是一个POJO,没有被代码污染。

    Struts2中的Action的execute方法不依赖于servlet API,改善了Struts1中耦合过于紧密,极大方便了单元测试。

    Struts2的Action无须用ActionForm封装请求参数。

    相对Struts1框架而言,Struts2的逻辑视图不再是ActionForward对象,而是一个普通的字符串,利于分离和复用。



error.jsp与success.jsp


<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<html>
	<head></head>
	<body>
		<h1>error jsp</h1>
	</body>
</html>

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
<html>
	<head></head>
	<body>
		<h1>success jsp</h1>
	</body>
</html>



具体细节见代码








0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:178954次
    • 积分:5161
    • 等级:
    • 排名:第5540名
    • 原创:351篇
    • 转载:36篇
    • 译文:0篇
    • 评论:16条
    文章分类