【03】使用Struts 2 开发程序

1. Struts 2的资源获取

  • Struts官方地址:http://struts.apache.org
  • Struts 2 目录结构
     apps目录:Struts2示例应用程序
     docs目录:Struts2指南、向导、API文档
     lib目录:Struts 2的发行包及其依赖包
     src目录:Struts 2项目源代码

2. 使用Struts 2 开发程序

2.1 加载Struts2 类库

  • 将空项目中lib目录中的除junit和spring-test之外的所有文件复制到项目的WebRoot/WEB-INF/lib目录下
    在这里插入图片描述

2.2 配置web.xml文件

  • 将全部请求定位到指定的Struts 2过滤器中
	<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>

【说明】Struts2 的核心控制器

  • Before 2.1.3 :

      org.apache.struts2.dispatcher.FilterDispatcher
    
  • After 2.1.3 :

      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    

2.3 开发视图层页面

	<div>
	  	<h1>
	  		<!--显示Struts Action中message的属性内容-->
	  		<s:property value="message"/>
	  	</h1>
	</div>
	<div>
	  <form action="helloWorld.action" method="post">
	  请输入您的姓名:
	  	  <input name="name" type="text" />
	  	  <input type="submit" value="提交" />
	  </form>
    </div>

== 补充:JSP获得项目根目录==

	<img src="<%=basePath%>/images/pic1.jpg"/>
	<img src="Struts201/images/pic1.jpg"/>
	<img src="${pageContext.request.contextPath }/images/pic1.jpg"/>

2.4 开发控制层Action

  1. 编写 HelloWorldAction
	public class HelloWorldAction implements Action {
	  // 用户输入的姓名
	  private String name = "";
	  // 向用户显示的信息
	  private String message = "";
	  public String execute() {
	  	// 根据用户输入的姓名,进行"Hello,XXXX!"的封装
	  	this.setMessage("Hello,"+this.getName()+"!");
	  	// 处理完毕,返回导航结果的逻辑名
	  	return "success";
	  }
	  …  //省略setter、getter方法
	}

2.5 配置struts.xml文件

将Struts2的空项目中的配置文件(struts.xml)复制到项目的src目录下。

	<?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>
		<!--
 	 		struts.devMode : 是否设置为开发模式 true:是开发模式,否则不是 
 			注:在开发模式下,修改Struts的配置文件后不需要重新启动Tomcat服务器即生效。否则修改Struts配置文件后需要重新启动Tomcat服务器才生效。
 	 	-->	
		<constant name="struts.devMode" value="true" />
		<!--
 	  		namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/")
 	  		(http://localhost:8080/Struts2_0100_Introduction/)
 	  -->
		<package name="default" namespace="/" extends="struts-default">
	  		<action name="helloWorld" class="cn.jbit.strutsdemo.HelloWorldAction"> 
	  			<result name="success">helloWorld.jsp</result>
	  		</action>
	    </package>
	</struts>

【说明】

  • namespace:基于当前应用 , / 标识应用的根目录
  • action 的 name属性值与namespace中的 / 进行组合。

2.6 部署、运行项目

猜你喜欢

转载自blog.csdn.net/Spectre_win/article/details/88947963