【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用

action学习笔记3-有关于通配符的讨论

使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则。

一:前端htm

<前端代码html>
	</head>
		<body>
			<a href="<%=context %>/actions/Studentadd">添加学生</a>
			<a href="<%=context %>/actions/Studentdelete">删除学生</a>
			<a href="<%=context %>/actions/Teacher_add">添加老师</a>
			<a href="<%=context %>/actions/Teacher_delete">删除老师</a>
		</body>
	</html>

二:struct.xml

//struct.xml
<struts>
    <constant name="struts.devMode" value="true" />
    <package name="actions" extends="struts-default" namespace="/actions">
        <action name="Student*" class="com.struts2.action.StudentAction" method="{1}">
            <result>/Student{1}_success.jsp</result>
        </action>
        <action name="*_*" class="com.struts2.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
        </action>
    </package>
</struts>

三:类包

//structs2调用的类包
package com.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class StudentAction extends ActionSupport {
	public String add() {
		return SUCCESS;
	}
	public String delete() {
		return SUCCESS;
	}
}

四:过程分析

执行步骤:点击<a href="<%=context %>/actions/Studentadd">添加学生</a> -> 通过struct.xml查找/actions/Studentadd -> 没有相匹配的action,则与namespace里面的Student*匹配
 -> 调用类class="com.struts2.action.StudentAction -> 执行方法的选择,Studentadd与Student*匹配后,*就表示为add,{1},{2}的选择之后讨论。

五:讨论

添加一个新类

package com.bjsxt.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class TeacherAction extends ActionSupport {
	public String add() {
		return SUCCESS;
	}
	public String delete() {
		return SUCCESS;
	}
}

当我们点击<a href="<%=context %>/actions/TeacherAdd">添加老师</a> ->
通过struct.xml查找/actions/TeacherAdd-> 没有相匹配的action,则与namespace里面的*_*匹配  -> 调用类class="com.struts2.action.{1}Action -> 执行方法的选择,Teacher与*_*中第一个星号匹配后,第二个*就表示为add,{1},{2}的选择根据*的顺序决定。

六:结论

约定的好的话,配置极其简单。通过第五步的讨论,当我们继续添加新类之后,配置不需要修改。

【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用,布布扣,bubuko.com

时间: 2024-10-14 11:17:53

【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用的相关文章

Java Web开发及应用软件方向的学习计划

从接触计算机以来,一直抱有很浓厚的兴趣.我并不擅长与人交际,与机器对话可能更有性格方面的优势.虽然我很想做出一些改变,但总得需要时间和历练,暂时也只能这样了~ 一直很向往代码的神秘,在梦之站待过两年时间后更是对程序猿的生活抱有幻想,我觉得我适合做这件事情,也很有兴趣.中途我去为考研准备了一段时间,但后来我发现我对读研似乎没有很大的愿望,不是因为考研难,只是遵循了自己真正的想法.没有更高的学历,又出身一个不太牛逼的一本,将来的生活是无法预测的,我根本不确定是否能像某人说得那样走向成功.但现实如此,

Web开发中获取Spring的ApplicationContext的三种方式

在 WEB 开发中,可能会很少需要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获取 ApplicationContext 一       要想怎么获取 ApplicationContext, 首先必须明白 Spring 内部 ApplicationContext 是怎样存储的.下面我们来跟踪一下源码 首先:从大家最熟悉的地方开始 Java代码   <listener> <

Java Web开发: Tomcat中部署项目的三种方法

web开发,在tomcat中部署项目的方法: 注意大小写 1.在conf目录中新建Catalina\localhost目录,在该目录中新建一个xml文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,改xml文件的内容为: <Context path="/qxmobile"  docBase="/usr/local/webroot/qxmobile" reloadable="false"  debug="0" p

全端Web开发 使用JavaScript与Java 阅读笔记

计算机科学领域只有两大难题:缓存失效和命名. REST(Representational State Transfer)技术,他建议一种Web服务消息传递的风格. 第一章:因变而变 企业家总在寻求变化,他们适应变化,并把它当作一种机遇. J2EE和JSP经过完善变成了JEE和JSF. 现代的客户端-服务器架构里,服务器更大程度上负责相应客户端的请求,提供资源的访问方式(通常使用XML 和JSON交换信息).在过去的服务器驱动模型中,页面(和与之相关的数据)都在服务器端生成完毕,一起返回客户端在浏

spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:InternalResourceViewResolver讲解 2:自动配置静态

spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:自定义消息转换器 本文是<凯哥陪你学系列-框架学习之spring boot框架

关于Web开发里并发、同步、异步以及事件驱动编程的相关技术

一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有童鞋说我这篇文章理论化很严重,没有实际代码和具体项目做支撑,这个评论让我有种理论和实践脱节的味道,所以我想在这里谈谈我为什么要写这篇文章的原因,这篇文章是把我前不久学习多线程编程的一个总结. 当我从我书堆里找到所有与多线程开发相关的书籍简单阅读后,我发现了一个问题,在java里开发多线程最强有力的实践就是做服

想做web开发 就学JavaScript

有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言.我的思绪回到了大学,那时候我用 Pascal.Fortran.C和汇编语言,不过那个时候有不同的目标. 鉴于当前的状况和趋势,答案相对容易给出来:学习 JavaScript.四周看看,曾经低端的浏览器脚本语言现在变得随处可见,从服务器端到客户端,每天好像有更多的选择. 出身低微 我记得数年前投入 web 开发,学习了 HTML.用 Perl 开发 CGI 脚本.Netscape 在其 2.0 版本的浏览器里引入了一种叫做

学JavaScript,做web开发

有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言.我的思绪回到了在麦子学院学习的时光,那时候我用 Pascal.Fortran.C和汇编语言,不过那个时候有不同的目标. 想做web开发,就学JavaScript 鉴于当前的状况和趋势,答案相对容易给出来:学习 JavaScript.四周看看,曾经低端的浏览器脚本语言现在变得随处可见,从服务器端到客户端,每天好像有更多的选择. 出身低微 我记得数年前投入 web 开发,学习了 HTML.用 Perl 开发 CGI 脚本.N

HTML5移动Web开发实战 PDF扫描版?

<HTML5移动Web开发实战>提供了应对这一挑战的解决方案.通过阅读本书,你将了解如何有效地利用最新的HTML5的那些针对移动网站的功能,横跨多个移动平台.全书共分10章,从移动Web.设备端配置和优化,变互.响应式设计.设备访问,调试.性能测试.富媒体等角度出发,包含了60多个实用的示倒,详细阐释如何构建快速.响应式的HTML5移动网站,适用于iOS.Android.WindowsPhone和BlackBerry等众多主流移动应用平台.  <HTML5移动Web开发实战>作者是