【Strurts框架】第一节Action-通配符

简介:
使用通配符,将配置量降到最小。

在配置Action这样写:
<action name="student*" class="cn.edu.hpu.action.StudentAction" method="{1}">
       <result name="success">/student{1}_success.jsp</result>
</action>

{1}与*就是通配符。其中{1}指的是“*”号所代表的字符串,method="{1}"代表的就是使用StudentAction中方法名为{1}(说白了就是student后面的字符串)的方法来获取result。

如:
<a href="<%=basePath %>javaee/studentadd">添加学生</a><br/>
<a href="<%=basePath %>javaee/studentdelete">删除学生</a><br/>

这里的studentadd与studentdelete的student后面的字符串就是所谓的“*”,{1}就分别被赋值为add与delete,即:method="add"和method="delete"。

而StudentAction中只需要部署好这两个方法即可:
package cn.edu.hpu.action;

public class StudentAction {
	public String add(){
		return "success";
	}
	
	public String delete(){
		return "success";
	}
}

这种方式避免了多次建立action来指定跳转的jsp或html页面(也适用于多result的情况)

注意:一定要遵守“约定优于配置”的原则
(例如,项目经理会约定你们,各种方法的命名规则,必须怎么怎么写)
注意:struts首先匹配最精确的,如果有比通配符更精确的,首先匹配精确的那个。
结语:通配符用好了,可以将配置优化到最简化

一个最简化配置的例子:
struts.xml:
<package name="default" namespace="/javaee" extends="struts-default">  
   <action name="*_*" class="cn.edu.hpu.action.{1}Action" method="{2}">
       <result name="success">/{1}_{2}_success.jsp</result>
   </action>
</package> 

TeatherAction:
public class TeatherAction {
	public String add(){
		return "success";
	}
	
	public String delete(){
		return "success";
	}
}

Teather_add_success.jsp:
<html>
  <head>
    <title>My JSP 'Teather_add_success.jsp' starting page</title>
  </head>
  
  <body>
    Teather add success!!!!<br>
  </body>
</html>

Teather_delete_success.jsp:
<html>
  <head>
    <title>My JSP 'Teather_add_success.jsp' starting page</title>
  </head>
  
  <body>
    Teather delete success!!!!<br>
  </body>
</html>

调用:
<a href="<%=basePath %>javaee/Teather_add">添加老师</a><br/>

<a href="<%=basePath %>javaee/Teather_delete">删除老师</a><br/>


结果读者自己思考一下吧?(动手实践)

转载请注明出处:http://blog.csdn.net/acmman/article/details/44158439


相关文章
|
4月前
|
程序员 Python
案例学Python:filter()函数的用法,高级!
案例学Python:filter()函数的用法,高级!
|
3月前
|
前端开发 JavaScript BI
JavaScript的过滤大师:深度解析Filter用法
JavaScript的过滤大师:深度解析Filter用法
82 0
|
9月前
|
JavaScript 前端开发
js正则表达式的作用及使用方法
js正则表达式的作用及使用方法
79 1
|
7月前
|
数据处理
SAP ABAP 里 FILTER 关键字的用法举例
SAP ABAP 里 FILTER 关键字的用法举例
69 0
|
8月前
|
Python
正则中re高级用法findall中的一个小坑
正则中re高级用法findall中的一个小坑
|
网络架构
Yii2的基于模式匹配的路由是什么意思?底层原理是什么?
Yii2的基于模式匹配的路由是什么意思?底层原理是什么?
|
前端开发
前端学习案例4-正则概述-字符组的简写
前端学习案例4-正则概述-字符组的简写
40 0
前端学习案例4-正则概述-字符组的简写
|
JavaScript
WebApi入门第五章(attribute语法学习 )
WebApi入门第五章(attribute语法学习 )
96 0
WebApi入门第五章(attribute语法学习 )
|
存储 XML 安全
C#基础知识学习 之 ☀️ 特性(Attribute) 的含义和用法
C# 特性🔥(Attribute) 什么是特性🙏 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。 特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。
C#基础知识学习 之 ☀️ 特性(Attribute) 的含义和用法
|
JavaScript 前端开发
JavaScript学习(十四)---String对象中的模式匹配方法
目录 1.match()方法 语法:stringobj.match(rgExp) 例子: 2.search()方法 语法:stringobj.search(rgExp) 例子: 3.replace()方法 语法:replace(rgExp.replaceText) 例子: 4.split()方法 语法:split([separator[,limit]]) 1.match()方法 match()方法使用正则表达式模式对字符串进行查找,并将包含查找的结果作为数组返回。
964 0