`
JavaCrazyer
  • 浏览: 3009122 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类

Struts温习(3)--DispactherAction的用法

阅读更多

首先我们来考虑一个问题,像在struts的第一篇文章中介写到的,struts-config.xml中配置一个路径那么就得匹配一个Action,如果增删改查多个路径呢:比如http://ip:host/app/xx.do?method=opt ,如果这个opt分别为add,delete,update,query 。是否就要配置四个action在struts-config.xml中,并且还得写四个对应的Action处理类?这种做法显然有点笨拙的,针对Action只能执行excute方法,也就是说你用Action的话,方法就必须得是excute

而DsispactherAction就不一样了,使用它的话,首先在struts-config.xml中配置一个action即可,加上属性parameter

如:<action path="/student"

type="com.javacrazyer.web.action.StudentOptAction"

parameter="method">

那么,现在我们只需要写上一个StudentOptAction类,添加你想要的方法即可,方法名字都可以自定义的

不过页面上提交或链接的URL至少要出现method这个参数,method等于什么,那么就在Action中写上什么方法。


<action>的parameter属性是给DispatchAction使用的,你的类要继承DispatchAction类,而不是普通的Action,Action只会执行execute方法,DispatchAction会根据parameter的值执行特定的方法,注意parameter的值不要设置为execute,也不要覆盖DispatchAction中的execute(),因为DispatchAction继承于Action,它的execute会首先执行,在execute()方法中取出parameter的值,通过java反射调用指定的方法。


WEB-INF/struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

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

<struts-config>
	<form-beans>
	</form-beans>

	<action-mappings>
		<action path="/forward" 
			type="org.apache.struts.actions.ForwardAction"
			parameter="/index.jsp">
		</action>
		
		<action path="/student"
			type="com.javacrazyer.web.action.StudentOptAction"
			parameter="method">
			<forward name="toAdd" path="/stu_toadd.jsp"/>
			<forward name="list" path="/stu_list.jsp"/>
			<forward name="update" path="/stu_update.jsp"/>
			<forward name="delete" path="/stu_delete.jsp"/>
		</action>
	</action-mappings>
</struts-config>

 index.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Struts中DispatchAction的使用</title>
  </head>
  
  <body>
    <h3>Struts应用:DispatchAction的使用</h3><hr/>
    <a href="student.do?method=list">查询学员列表</a><br/><br/>
    <a href="student.do?method=toAdd">添加学员</a><br/><br/>
    <a href="student.do?method=delete">删除学员</a><br/><br/>
    
  </body>
</html>

 StudentOptAction.java

package com.javacrazyer.web.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

public class StudentOptAction extends DispatchAction {

	public ActionForward list(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//
		System.out.println("到达Action中的list()方法了");
		
		return mapping.findForward("list");
	}
	
	public ActionForward toAdd(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println("到达Action中的toAdd()方法了");
		
		return mapping.findForward("toAdd");
	}
	
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println("到达Action中的delete()方法了");
		
		return mapping.findForward("delete");
	}
	
	public ActionForward update(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println("到达Action中的update()方法了");
		
		return mapping.findForward("update");
	}
}
 

stu_toadd.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>添加一个学员</title>
  </head>
  
  <body>
    <h3>添加一个学员</h3><hr/>
  </body>
</html>

 stu_delete.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>删除一个学员</title>
  </head>
  
  <body>
    <h3>删除一个学员</h3><hr/>
  </body>
</html>

 stu_update.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>更新一个学员的信息</title>
  </head>
  
  <body>
    <h3>更新一个学员的信息</h3><hr/>
  </body>
</html>

 stu_list.jsp

<%@ page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>显示所有的学员列表</title>
  </head>
  
  <body>
    <h3>显示所有的学员列表</h3><hr/>
  </body>
</html>

 web.xml还是配置ActionServlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    	<param-name>config</param-name>
    	<param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
 
分享到:
评论

相关推荐

    struts-taglib-1.3.8.jar

    struts-taglib-1.3.8.jar struts-taglib-1.3.8.jar

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    struts-spring-other-lib 等jar包

    struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-other-lib 等jar包struts-spring-...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    struts1.38包,struts-core-1.3.8.jar

    struts1.38包,struts-core-1.3.8.jarstruts1.38包,struts-core-1.3.8.jar

    struts-2.3.24-apps.zip包测试Struts2 S2-048高危漏洞

    2017年7月7日,Apache Struts发布最新的安全公告,Apache Struts2-strus1-plugin插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9791(S2-048),主要受影响的Struts版本为:2.3.x。 攻击者可以构造恶意的字段值...

    struts-core-1.3.8-API文档-中文版.zip

    赠送jar包:struts-core-1.3.8.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar

    struts-2.0.14-lib Struts2开发包

    包含Struts2框架的核心类库,以及Struts2的第三方插件类库 struts2-core-2.0.14 xwork-2.0.7 ognl-2.6.11 commons-logging-1.0.4 freemarker-2.3.8 等等。

    struts-2.3.34-all.part2.rar

    struts-2.3.34-all.rar,包括app,docs,lib,src

    struts-2.5.2-all所有jar包

    commons-lang3-3.4.jar, commons-logging-1.1.3.jar, dwr-1.1.1.jar, ezmorph-1.0.6.jar, freemarker-2.3.23.jar, google-collections-1.0.jar, google-gxp-0.2.4-beta.jar, hamcrest-core-1.3.jar, jackson-...

    struts-2.3.7-all

    struts-2.3.7-all jar包

    【Struts2】〖所有依赖jar包〗struts-2.3.37-lib

    【Struts2】〖所有依赖jar包〗struts-2.3.37-lib 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.

    struts-2.5.2-all.zip

    开发者需要创建Action类并实现相应的业务逻辑方法,Struts 2会自动调用这些方法。 2. **配置文件**:主要包括`struts.xml`,这是Struts 2的主配置文件,用于定义Action、结果类型、拦截器等。通过配置文件,开发者...

    struts-2.3.16-all

    3. `struts2-dojo-plugin`:提供与Dojo库的集成,用于创建富客户端界面。 4. `struts2-spring-plugin`:与Spring框架的集成库。 5. `struts2-convention-plugin`:约定优于配置的插件,简化Action和Result的配置。 6...

    struts-1.2.9-lib.zip和struts-1.2.9-src.zip

    3. **国际化支持**:`struts-tiles.jar`提供了Tiles框架,可以方便地构建可重用的页面布局和组件,支持多语言国际化。 4. **其他依赖库**:可能包括`commons-logging.jar`、`commons-lang.jar`、`commons-...

    struts-2.5-all

    struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

    Struts2_s2-016&017&ognl2.6.11_patch漏洞补丁

    struts.xml文件中新增以下内容: &lt;!-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --&gt; &lt;bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...

    struts-html-el.tld

    struts-html-el.tld

Global site tag (gtag.js) - Google Analytics