【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


相关文章
|
6月前
|
前端开发 JavaScript BI
JavaScript的过滤大师:深度解析Filter用法
JavaScript的过滤大师:深度解析Filter用法
195 0
正则中re高级用法findall中的一个小坑
正则中re高级用法findall中的一个小坑
|
前端开发
前端学习案例4-正则概述-字符组的简写
前端学习案例4-正则概述-字符组的简写
56 0
前端学习案例4-正则概述-字符组的简写
|
网络架构
Yii2的基于模式匹配的路由是什么意思?底层原理是什么?
Yii2的基于模式匹配的路由是什么意思?底层原理是什么?
100 0
|
前端开发
零基础CSS入门教程(6)——通配符选择器
我们上几节课学习了id选择器和class选择器,那我们这一小节学习一下通配符选择器。我们这里说的通配符选择器也是全选选择器,这个选择器的通途一般是在,清除浏览器默认样式时候使用。 效果如下 通配符选择器也叫全选选择器,我们一般会在清除浏览器默认格式的时候使用。
零基础CSS入门教程(6)——通配符选择器
|
JavaScript 前端开发
Web前端学习:jQuery基础--1【简介和安装、语法使用、三种选选择器的使用(元素、class、id)】(附操作源码)
Web前端学习:jQuery基础--1【简介和安装、语法使用、三种选选择器的使用(元素、class、id)】(附操作源码)
281 0
Web前端学习:jQuery基础--1【简介和安装、语法使用、三种选选择器的使用(元素、class、id)】(附操作源码)
|
JavaScript
WebApi入门第五章(attribute语法学习 )
WebApi入门第五章(attribute语法学习 )
110 0
WebApi入门第五章(attribute语法学习 )
|
存储 XML 安全
C#基础知识学习 之 ☀️ 特性(Attribute) 的含义和用法
C# 特性🔥(Attribute) 什么是特性🙏 特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。 特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。
C#基础知识学习 之 ☀️ 特性(Attribute) 的含义和用法
|
数据格式 XML Java
sqlSessionFactoryBean.setMapperLocations 通配符 在配置代码中怎样使用
sqlSessionFactoryBean.setMapperLocations 通配符 在配置代码中怎样使用 @Bean(name = ["sqlSessionFactoryMicrotek"]) @Primary @Thr...
9594 0
|
Shell Android开发 开发者
DeepLink用法及源码解析
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 1. 简介 DeepLink官网上有这样的解释: When a clicked link or programmatic reque...
1904 0