首先我们来考虑一个问题,像在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
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-...
赠送jar包:struts2-json-plugin-2.3.24.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
struts1.38包,struts-core-1.3.8.jarstruts1.38包,struts-core-1.3.8.jar
2017年7月7日,Apache Struts发布最新的安全公告,Apache Struts2-strus1-plugin插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9791(S2-048),主要受影响的Struts版本为:2.3.x。 攻击者可以构造恶意的字段值...
赠送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.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
包含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.rar,包括app,docs,lib,src
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 jar包
【Struts2】〖所有依赖jar包〗struts-2.3.37-lib 我寻见一片海 碧蓝且耀着光 大片船只航行其上 都向着远方 Shared by Foriver_江河 © 1997-8023 江河 All Rights Reserved.
开发者需要创建Action类并实现相应的业务逻辑方法,Struts 2会自动调用这些方法。 2. **配置文件**:主要包括`struts.xml`,这是Struts 2的主配置文件,用于定义Action、结果类型、拦截器等。通过配置文件,开发者...
3. `struts2-dojo-plugin`:提供与Dojo库的集成,用于创建富客户端界面。 4. `struts2-spring-plugin`:与Spring框架的集成库。 5. `struts2-convention-plugin`:约定优于配置的插件,简化Action和Result的配置。 6...
3. **国际化支持**:`struts-tiles.jar`提供了Tiles框架,可以方便地构建可重用的页面布局和组件,支持多语言国际化。 4. **其他依赖库**:可能包括`commons-logging.jar`、`commons-lang.jar`、`commons-...
struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。
struts.xml文件中新增以下内容: <!-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
在Java世界里,`json-lib-2.1.jar` 是一个用于处理JSON的库,它提供了一系列的方法来将Java对象转换为JSON格式,以及将JSON字符串反序列化回Java对象。这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java...
struts-html-el.tld